首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

生产者同时是消费者引发死锁解决思路

2012-04-17 
生产者同时是消费者引发死锁一堆线程(有生产者、消费者)共用一个存数据的总线,总线容量固定其中有一个线程

生产者同时是消费者引发死锁
一堆线程(有生产者、消费者)共用一个存数据的总线,总线容量固定
其中有一个线程既是生产者也是消费者:取某些格式的数据,处理后放回总线,
当该线程性能不足时,总线满无法存放处理后的数据;同时自己因为无法存便无法继续取数据处理,总线便始终满,从而导致死锁

该如何解决?

[解决办法]
生产和消费者都放在一个线程里面限制了两端处理能力的扩展性,当生产和消费两端的复杂度不平衡的时候势必会吃空缓存队列,表面上看也就产生了你这个现象。针对这样你可以考虑把生产和消费做成独立的线程,如果消费的负载大就可以增加消费处理线程的数量。

但是仔细的看,我怀疑你的问题出在线程同步控制上。所以你得把你的相关代码贴出来看下。

热点排行
Bad Request.