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

2024-10-01 17:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一些代码等待X发生,然后创建一个线程并处理email。在

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

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

编辑:仅供参考,我没有任何需要处理电子邮件.main()代码再往下一点,我就不必等待它的输出了。在

Jean提供的答案是:删除main后面的()。在


Tags: 方法代码编辑targetifmain电子邮件email
1条回答
网友
1楼 · 发布于 2024-10-01 17:24:56

问题是,当您将方法作为Thread的参数传递时,实际上是在调用您的方法。在

所以它执行,但在当前线程中,这就是它工作但阻塞的原因(因为它可能返回None,所以Thread对象没有错误,它只是阻塞)

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

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

注意:像PyCharm这样的一些ide会自动在函数名中添加括号。那可不是个好主意:)

相关问题 更多 >

    热门问题