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