多线程通信 python
时间: 2023-11-17 16:03:37 浏览: 95
Python多线程通信queue队列用法实例分析
Python中的多线程通信可以通过queue队列实现。queue队列是线程安全的,可以在多个线程之间共享数据。在多线程编程中,可以使用queue队列来传递消息和数据,从而实现线程之间的通信。
下面是一个简单的示例,演示了如何使用queue队列在多个线程之间传递数据:
```python
import threading
import queue
# 创建一个queue队列
q = queue.Queue()
# 定义一个生产者线程,向队列中添加数据
class ProducerThread(threading.Thread):
def run(self):
for i in range(10):
item = 'item-' + str(i)
q.put(item)
print('生产者线程向队列中添加了:', item)
# 定义一个消费者线程,从队列中取出数据
class ConsumerThread(threading.Thread):
def run(self):
while True:
item = q.get()
if item is None:
break
print('消费者线程从队列中取出了:', item)
# 创建一个生产者线程和一个消费者线程
producer = ProducerThread()
consumer = ConsumerThread()
# 启动线程
producer.start()
consumer.start()
# 等待生产者线程完成
producer.join()
# 在队列中添加一个None,表示数据已经全部添加完成
q.put(None)
# 等待消费者线程完成
consumer.join()
```
在上面的示例中,我们创建了一个queue队列,并定义了一个生产者线程和一个消费者线程。生产者线程向队列中添加数据,消费者线程从队列中取出数据。在主线程中,我们启动了生产者线程和消费者线程,并等待生产者线程完成。当生产者线程完成后,我们向队列中添加了一个None,表示数据已经全部添加完成。然后等待消费者线程完成。
阅读全文