• 消息队列实现了多生产者、多消费者队列。采用数据先进先出的数据结构,这特别适用于消息必须安全地在多线程间交换的线程编程。常用于消息异步处理,比如接收数据线程防止接收阻塞,只是对数据进行入栈存储,另一个线程专门处理消息队列消息。
    1. # 该示例线程 B 通过将消息压栈,线程 A 专门读取消息队列的内容进行处理。
    2. import _thread
    3. import utime
    4. from queue import Queue
    5. q = Queue()
    6. # 线程 B 函数入口,共享变量 count 累增。
    7. def thread_entry_B(id):
    8. data = 'Hello QuecPython!'
    9. while True:
    10. q.put(data)
    11. print('thread {} send {}.'.format(id, data))
    12. utime.sleep(3)
    13. # 线程 A 函数入口,共享变量 count 读取打印。
    14. def thread_entry_A(id):
    15. while True:
    16. data = q.get()
    17. print('thread {} recv {}.'.format(id, data))
    18. # 创建线程A、B。
    19. _thread.start_new_thread(thread_entry_A, ('A',))
    20. _thread.start_new_thread(thread_entry_B, ('B',))