Python 具有可供所有线程使用的全局队列(或列表)
我想写一个脚本,它通过internet使用数据,并将每隔n秒拉入的数据放入队列/列表中,然后我将有x个线程,我将在脚本开始时创建这些线程,当数据添加到队列中时,这些线程将拾取并处理数据。我的问题是:Python 具有可供所有线程使用的全局队列(或列表),python,multithreading,Python,Multithreading,我想写一个脚本,它通过internet使用数据,并将每隔n秒拉入的数据放入队列/列表中,然后我将有x个线程,我将在脚本开始时创建这些线程,当数据添加到队列中时,这些线程将拾取并处理数据。我的问题是: 如何在脚本中创建这样一个全局变量(列表/队列),然后所有线程都可以访问它 在我的线程中,我计划检查队列中是否有数据,如果有,则检索该数据,释放锁并开始处理它。线程完成任务后,返回开始并继续检查队列。如果队列中没有数据,请休眠指定的时间,然后再次检查队列 您可以定义一个线程并将其传递给多个线程: fr
from threading import Thread
from Queue import Queue
def task(queue):
while True:
item = queue.get() # blocks until an item is available
# process item
queue = Queue()
t = Thread(target=task, args=(queue, ))
t.daemon = True
t.start()
如果你希望你的应用程序真的是多线程的,那么考虑使用独立队列(比如ActuMeq或ZrOMQ),并将它从你在不同OS进程中运行的脚本中消耗掉,因为吉尔(使用独立队列很容易在网络中使用它——加上可伸缩性)。p> 这正是它的用途:“队列模块实现了多生产者、多消费者队列。当信息必须在多个线程之间安全交换时,它在线程编程中特别有用。”