我的代码有一个循环来检查列表,如果列表中有项目,它将处理它们并从列表中删除它们。这些项目由另一个帖子不断插入到列表中。
以下是代码:
while True:
for item in list:
Process(item)
Remove(item)
问题1:
我上面的内容有效,但问题是它对cpu非常密集 我可以在代码中添加类似'time.sleep'的东西,但是这个程序需要立即处理列表中的项目而不会有任何延迟。如何在cpu上减少密集度(请记住,我正在同时运行另一个线程)。
问题2 :
我希望在列表为空时停止循环运行,并在列表中添加某些内容时继续处理。我该怎么做呢?
答案 0 :(得分:1)
似乎queue模块对您有用。它实现了多生产者,多用户队列,并允许线程之间的同步,而无需繁忙等待。
另请参阅使用此queue
模块的Solution to producer and consumer problem in python。