如何停止python线程

2024-04-29 15:11:47 发布

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

看了大卫·比兹利的(http://www.dabeaz.comvideo about python threads,我正在尝试用线程的东西

def countdown(n):
    while n > 0:
        if not  n % 100000:
            print n
        n -= 1

>> from threading import Thread
>> t1=Thread(target=countdown,args=(10000000,))
>> t1.start();t1.join()
>>Ctrl-C

这个给了

^{pr2}$

现在我试图找到线程的状态

>>t1.isAlive()
>>False

所以,我试图再次运行线程,这导致了一个错误

>>t1.start();t1.join()
--------------
RuntimeError: thread already started

为什么会这样?有没有办法停止线程?在


Tags: comhttpdefwwwvideo线程thread大卫
2条回答

Python3确实修复了这种行为:你得到一个“线程只能启动一次”。这是故意的。在

如果您想获得更多的控制权,可以看看_线程模块,它只是POSIX线程上的一个包装器。在

在您使用的线程库中,一个给定的线程实例只能启动和停止一次,之后不能再启动。您得到的错误消息是因为您试图在线程停止后启动它,所以您确实成功地停止了它。你必须重新开始一个新的线程。在

相关问题 更多 >