Python time.sleep 杀死线程
Posted
技术标签:
【中文标题】Python time.sleep 杀死线程【英文标题】:Python time.sleep kills the Thread 【发布时间】:2021-11-13 10:47:29 【问题描述】:我在 Windows 上使用 Portable Python 3.9.4 x64,每次我调用 time.sleep(...) 方法时,线程都会退出并且不会返回:
import threading
import time
threads = []
print ("hello")
class myThread(threading.Thread):
def __init__(self, i):
threading.Thread.__init__(self)
self.i = i
def run(self):
print ("i = ", self.i)
for j in range(0, self.i):
print ("i: ", i,"j = ",j)
time.sleep(5)
for i in range(1,4):
thread = myThread(i)
thread.daemon = False
thread.start()
我的输出是:
hello
i = 1
i: 1 j = 0
i = 2
i: 2 j = 0
i = 3
i: 3 j = 0
如果我使用更短的延迟,例如time.sleep(0.05)
,那么我会得到更多的 j 值,但仍然不是全部。
所以我猜所有线程都被杀死了,因为主线程完成了。但是我怎样才能保持线程运行呢?
daemon-attribute 似乎没有改变任何东西......
【问题讨论】:
【参考方案1】:我认为你的 time.py 模块文件有问题。如果您使用的是本地,请重新下载文件,或者如果您在线,请尝试联系并报告此问题。
【讨论】:
嗯,我不知道该怎么做,或者如果可能的话:***.com/questions/42522650/cant-install-time-module/…你能给我一个建议吗? 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于Python time.sleep 杀死线程的主要内容,如果未能解决你的问题,请参考以下文章
在多线程程序中添加 time.sleep 解决了 python 中的 UnicodeDecodeError