Python 以阻塞方式“什么都不做”的正确方法是什么?

Python 以阻塞方式“什么都不做”的正确方法是什么?,python,python-3.x,Python,Python 3.x,有些情况下,在我的程序结束时,我需要什么都不做,不退出程序。这是一种典型的情况,我有我控制或不控制的永无止境的线程 我使用了几种解决方案: time.sleep(1000000) 赞成:简单的一行 缺点:1000000秒是11天,必须估计脚本将运行多长时间,最终估计失败 赞成者:看起来很干净 缺点:仅适用于我控制线程的情况 赞成者:我不知道,因为。。。 缺点:无用的CPU密集型 有没有一种正确的pythonical方法可以在阻塞方式下不执行任何操作?保持简单: while True:

有些情况下,在我的程序结束时,我需要什么都不做,不退出程序。这是一种典型的情况,我有我控制或不控制的永无止境的线程

我使用了几种解决方案:

time.sleep(1000000)
赞成:简单的一行 缺点:1000000秒是11天,必须估计脚本将运行多长时间,最终估计失败 赞成者:看起来很干净 缺点:仅适用于我控制线程的情况 赞成者:我不知道,因为。。。 缺点:无用的CPU密集型 有没有一种正确的pythonical方法可以在阻塞方式下不执行任何操作?

保持简单:

while True:
    time.sleep(1000000)
这解决了睡眠可能被中断的问题,也解决了程序运行数周的可能性

这是便携式的,明显的,环保的

保持简单:

while True:
    time.sleep(1000000)
这解决了睡眠可能被中断的问题,也解决了程序运行数周的可能性


这是便携式的,明显的,环保的

一个好方法是等待输入。这将是简单的,以及给你控制,当你想继续或退出程序

sys.stdin.readline()

一个好方法是等待输入。这将是简单的,以及给你控制,当你想继续或退出程序

sys.stdin.readline()

是什么让你睡不着?标准库也经常使用这种方法。你能阐明你的目标吗?你在等待什么条件吗?您声明您有一些永无止境的线程,但由于某种原因,等待很长时间或无限期是错误的?你为什么首先要等待线程,它们是出于某种原因不应该出现的守护进程线程吗?@MisterMiyagi:我不知道如何用不同的措辞来表达。在我的程序结束时,我只需要无限期地等待,空闲。实际的代码是在我直接控制或不控制的线程中运行的,我只需要确保我没有退出。在循环中睡眠是个好主意,我建议使用循环和睡眠,但由于某种原因,没有看到明显的解决方案-在循环中睡眠Python将自动等待线程完成,除非它们都通过作为守护进程线程显式禁用。@Mistermiagi:这很有趣,谢谢。我一直使用.join来等待线程,但现在我认为它没有多大意义-正如您所说,主程序线程将在退出前等待子程序结束,如果它们不结束,它也不会结束。一个人每天都在学习:谢谢。是什么让你睡不着?标准库也经常使用这种方法。你能阐明你的目标吗?你在等待什么条件吗?您声明您有一些永无止境的线程,但由于某种原因,等待很长时间或无限期是错误的?你为什么首先要等待线程,它们是出于某种原因不应该出现的守护进程线程吗?@MisterMiyagi:我不知道如何用不同的措辞来表达。在我的程序结束时,我只需要无限期地等待,空闲。实际的代码是在我直接控制或不控制的线程中运行的,我只需要确保我没有退出。@YAGI建议,除非在循环中自动禁用所有线程,否则在循环中自动禁用所有线程都是很有意思的,除非YAGI建议在循环中禁用所有线程。我一直使用.join来等待线程,但现在我认为它没有多大意义-正如您所说,主程序线程将在退出前等待子程序结束,如果它们不结束,它也不会结束。一个人每天都在学习:谢谢。