这里为什么还是会无限挂起?
来源:11-4 线程同步 - Lock、RLock

石佛啊石佛
2018-04-12
老师你好。为什么这段程序会无限挂起?
另外,如果我把消费者设置为Daemon时候,会出现生产者生产完的瞬间就结束的问题,导致最后的产品没有被消费掉。更复杂时,如果在这个过程中消费者时快时慢,也就是说我们无法通过队列为空来判断任务是否完全结束的话,我们应该如何设计代码,保证所有产品被生产且被消费完?
写回答
2回答
-
bobby
2018-04-16
首先setDeamon会在主线程结束后kill所有子线程,如果你的问题你可以按照两种设计理念, 第一 子线程一直处于监听和处理状态也就是永久运行状态,这个时候如果没有数据就会一直等待, 第二种就是设计一个结束标记为比如总量,一个信号,但是这个如果是信号的话,这个信号由什么线程标记 以及什么时候去标记这个需要你自己根据具体的需求来确定
00 -
石佛啊石佛
提问者
2018-04-12
是因为线程默认为join()?
00
相似问题