python线程安全队列示例代码
时间: 2023-05-27 16:07:01 浏览: 121
以下是一个简单的python线程安全队列示例代码:
```python
import queue
import threading
q = queue.Queue() # 创建线程安全队列
def producer():
for i in range(10):
q.put(i)
print("Produced:", i)
def consumer():
while True:
item = q.get()
if item is None:
break
print("Consumed:", item)
q.task_done()
# 创建生产者和消费者线程
p = threading.Thread(target=producer)
c = threading.Thread(target=consumer)
# 启动生产者和消费者线程
p.start()
c.start()
# 等待所有任务完成
q.join()
# 发送None信号,终止消费者线程
q.put(None)
c.join()
```
在这个示例代码中,我们创建了一个线程安全队列`q`。然后创建了一个生产者线程和一个消费者线程。生产者线程会向队列中放入数字0到9,消费者线程会不断从队列中取出数字并打印出来。我们使用`q.task_done()`来告诉队列,我们已经完成了一个任务。在所有任务完成后,我们发送了一个`None`信号给队列,告诉消费者线程可以终止了。最后我们等待消费者线程结束。
阅读全文