gpt4 book ai didi

python线程 block

转载 作者:太空狗 更新时间:2023-10-29 17:39:24 26 4
gpt4 key购买 nike

我正在尝试编写一个在循环中创建新线程并且不等待它们完成的程序。

据我了解,如果我在线程上使用 .start(),我的主循环应该继续,另一个线程将关闭并同时执行其工作

但是,一旦我的新线程启动,循环就会阻塞,直到线程完成。

我是不是误解了线程在 Python 中的工作原理,还是我在做什么蠢事?

这是我创建新线程的代码。

def MainLoop():
print 'started'
while 1:
if not workQ.empty():
newThread = threading.Thread(target=DoWorkItem(), args=())
newThread.daemon = True
newThread.start()
else:
print 'queue empty'

最佳答案

这会调用该函数并将其结果作为目标传递:

threading.Thread(target=DoWorkItem(), args=())

去掉括号传递函数对象本身:

threading.Thread(target=DoWorkItem, args=())

关于python线程 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15946075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com