线程同步问题,急等!!!!
我现在有一个信息通信程序,里面有4个线程.
一,循环检测数据库中是否有新信息,如果有就取出来然后发给需要此信息的客户端(这中间需要按照客户端的请求条件进行过滤).
二,根据用户的操作一次性读取当前的信息
三,按用户的搜索条件提供信息
四,用户退出,把当前用户的数据从用户队列中清除
其中一,二,三之间不需要同步,他们各自处理自己的数据,但是这四个线程又都存在对用户队列数据的访问,如果前三个线程不同步,当第四个清除时,前三个有可能会访问已经被清掉的用户数据,导致程序崩溃,然后如果要同步(我用的是临界区),因为线程中要频繁访问数据库,还要循环遍历用户队列,是个相对来说很长的时间周期,从而导致别的线程掛起,而客户端会因收不到数据而超时.
(我看了一些资料,都说临界区一定要处理相当短的代码,不能有外部介入的代码在里面,而我的这些数据库访问会大大提供处理时间)
请问各位高手有没有什么好的解决方法
急等