Python 一个线程应该睡眠多长时间才能让其他线程有足够的时间从队列中获得消息?

Python 一个线程应该睡眠多长时间才能让其他线程有足够的时间从队列中获得消息?,python,multithreading,python-3.x,Python,Multithreading,Python 3.x,我的线程应该睡眠多长时间,以便其他线程可以从队列中使用?我不想指定一个太大的数字,因为这样我可能会浪费时间,或者太小而错过了所有线程消耗的好处…在工作线程中睡眠是不必要的。有时在示例中可以实现多线程程序流的可视化,但没有理由在生产代码中实现 当一个线程完成一个任务时,它还可以立即执行下一个任务。另一个线程执行任务不会使程序更快。您唯一能做到的就是工作线程时不时地处于空闲状态。在工作线程中睡眠是不必要的。有时在示例中可以实现多线程程序流的可视化,但没有理由在生产代码中实现 当一个线程完成一个任务时

我的线程应该睡眠多长时间,以便其他线程可以从队列中使用?我不想指定一个太大的数字,因为这样我可能会浪费时间,或者太小而错过了所有线程消耗的好处…

在工作线程中睡眠是不必要的。有时在示例中可以实现多线程程序流的可视化,但没有理由在生产代码中实现


当一个线程完成一个任务时,它还可以立即执行下一个任务。另一个线程执行任务不会使程序更快。您唯一能做到的就是工作线程时不时地处于空闲状态。

在工作线程中睡眠是不必要的。有时在示例中可以实现多线程程序流的可视化,但没有理由在生产代码中实现

当一个线程完成一个任务时,它还可以立即执行下一个任务。另一个线程执行任务不会使程序更快。您唯一能实现的就是工作线程时不时地处于空闲状态

from time import sleep
from threading import Thread
from threading import get_ident
from queue import *

_urls = Queue()

class URLParser(Thread):

    def run(self):
        global _urls
        while _urls.qsize() > 0:
            url = archive_urls.get()
            _urls.task_done()
            # .... Omitted some code here where I do some work on the url, for brevity
            print(str(get_ident()) + ' consumed:' + url + ' qsize:' + str(_urls.qsize()))
            sleep(0.002)