我正在使用队列文档页面底部的队列实现,我有几个问题:
有 50 个线程,它们获取数十万个 JSON 文件。将线程数设置为两倍是个好主意
Queue(maxsize=
,还是应该或多或少?我想将
worker
功能放在不同的模块中。我该怎么办?当我尝试这样做时,我进入NameError: global name 'q' is not defined
了item = q.get()
函数行;添加global q
到功能没有帮助。
编辑:是否可以将工作函数移动到另一个模块,只需对该代码进行最少的更改?我不太了解对象,我希望代码尽可能简单。
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
q = Queue()
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in source():
q.put(item)
q.join()