Py学习  »  Python

队列按顺序非并行运行的python多线程处理

Amir Sadr • 6 年前 • 565 次点击  

为什么这段代码没有并行运行,运行它需要20秒,这意味着它是按顺序运行的。谢谢你的帮助。

import time
from queue import Queue
from threading import Thread
start = time.time()
def f():
    time.sleep(0.5)
    print("yes")
    return 'yes'


def do_stuff(q):
    while True:
        output = q.get()
        q.task_done()


q = Queue(maxsize=100)
for message_nbr in range(40):
    q.put(f())

num_threads = 10

for i in range(num_threads):
    worker = Thread(target=do_stuff, args=(q, ))
    worker.setDaemon(True)
    worker.start()

q.join()
print("time: ", time.time() - start)  # ~20 seconds
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39821
文章 [ 2 ]  |  最新文章 6 年前