python 多线程读取队列中的数据
下面是一个简单的Python多线程读取队列中数据的示例代码:
import queue
import threading
import time
def worker(q):
while True:
item = q.get()
if item is None:
break
print(f"Processing {item}")
time.sleep(1)
q.task_done()
if __name__ == '__main__':
q = queue.Queue()
for i in range(5):
q.put(i)
threads = []
for i in range(3):
t = threading.Thread(target=worker, args=(q,))
t.start()
threads.append(t)
q.join()
for i in range(3):
q.put(None)
for t in threads:
t.join()
该代码创建一个Queue对象,然后往里面放入一些数据。接着创建了三个线程,每个线程都会从队列中读取数据并进行处理。当队列中没有数据时,线程会阻塞等待。当所有数据都被处理完毕后,主线程调用了Queue对象的join()方法,等待所有线程结束。最后主线程往队列中放入了三个None对象,让每个线程都退出循环,结束运行
原文地址: http://www.cveoy.top/t/topic/fqm1 著作权归作者所有。请勿转载和采集!