当前位置:  开发笔记 > 编程语言 > 正文

Python:如何不等待线程完成继续?

如何解决《Python:如何不等待线程完成继续?》经验,为你挑选了1个好方法。

所以我有一些等待X发生的代码,然后创建一个线程并执行processEmail.

我正在寻找的是代码继续等待X的方法,即使processEmail正在另一个线程中发生,但是当前代码只是在等待X再次发生之前等待线程完成.

if X happens:
    thread = Thread(target = processEmail.main())
    thread.start()

编辑:仅供参考我没有任何需要输出processEmail.main()的代码,因此我无需等待其输出.

答案由Jean提供:在主要之后删除().



1> Jean-Françoi..:

问题是你实际上在调用你的方法作为参数传递它时Thread.

所以它执行,但在当前线程中,这就是为什么它正在工作但它阻塞(并且因为它可能返回None,你没有从Thread对象得到错误,它只是阻塞)

删除括号以传递函数对象,而不是调用的结果!

thread = Thread(target = processEmail.main)
thread.start()

注意:某些IDE(如PyCharm)会自动将括号添加到函数名称中.在那种情况下,这是一个坏主意:)

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有