Есть случаи, когда мне нужно, в конце моей программы, ничего не делать и не выходить из программы. Это, как правило, случай, когда у меня есть бесконечные потоки (которые я контролирую или нет).
Есть несколько решений, которые я использую:
time.sleep(1000000)
for thread in threading.enumerate():
try:
thread.join()
except RuntimeError:
# trying to join the main thread
pass
while True:
pass
Есть ли питонно правильный способ "ничего не делать блокирующим способом"?
Хорошим способом было бы ждать ввода. Это было бы просто, а также дать вам контроль над тем, когда вы хотите продолжить или выйти из программы.
sys.stdin.readline()
Будь проще:
while True:
time.sleep(1000000)
Это устраняет проблему, из-за которой может прерываться sleep()
, а также обрабатывать возможность запуска программы в течение многих недель.
Это портативный, очевидный и экологически чистый!
sleep
в петле? Этот метод обычно используется и стандартной библиотекой.daemon
, которых по какой-то причине не должно быть?