Python多线程通信问题实例

原创 Myth丶恋晨 2025-01-30 05:24 10阅读 0赞

在Python中,多线程的通信主要依赖于三个核心组件:全局变量(Global Variables)、锁(Locks)和队列(Queues)。

以下是一个简单的例子,展示如何使用这些工具进行多线程通信:

  1. import threading
  2. import queue
  3. # 全局变量
  4. counter = 0
  5. # 定义一个生产者线程
  6. def producer():
  7. global counter
  8. while True:
  9. # 生产一个计数器值
  10. counter += 1
  11. # 将计数器值放入队列中
  12. q.put(counter)
  13. # 定义一个消费者线程
  14. def consumer(q):
  15. while True:
  16. # 从队列中获取一个计数器值
  17. counter = q.get()
  18. # 处理这个计数器值(例如打印)
  19. print(f"Received: {counter}")
  20. # 创建生产者和消费者线程
  21. producer_thread = threading.Thread(target=producer)
  22. consumer_thread = threading.Thread(target=consumer, args=(queue.Queue(),)))
  23. # 启动线程
  24. producer_thread.start()
  25. consumer_thread.start()
  26. # 等待所有线程完成
  27. producer_thread.join()
  28. consumer_thread.join()

在这个例子中,生产者线程持续生成计数器值,并将这些值放入队列中。消费者线程则从队列中取出计数器值并进行处理。

这样设计的多线程通信模型相对稳定且易于控制。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,10人围观)

还没有评论,来说两句吧...

相关阅读