python线程块

发布于 2021-01-29 18:33:33

我正在尝试编写一个程序,该程序在循环中创建新线程,而不等待它们完成。据我了解,如果我在线程上使用.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'

谢谢大家

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这将调用该函数并将其 结果 传递为target

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

    省略括号以传递函数对象本身:

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看