1
hcnhcn012 2017-09-26 16:39:41 +08:00 via iPhone
最好别人工去关掉线程吧,一定要关的话可以自己写一个 stop()或者用 multiprocessing 用多进程实现任务。
写 stop 的话可以参考 https://stackoverflow.com/questions/323972/is-there-any-way-to-kill-a-thread-in-python |
3
geelaw 2017-09-26 17:25:25 +08:00 1
设置一个事件或者变量,告诉那个线程该结束了,然后等这个线程结束。
注意,杀死一个 cmd 进程不等同于杀死创建该进程的线程,后者可能会导致当前进程坏掉。 |
5
afeicool 2017-09-26 17:48:37 +08:00
Thread.setDaemon(true)
|
6
afeicool 2017-09-26 17:50:44 +08:00
具体到你的代码就是:
th.setDaemon(True) th.start() |
7
hcnhcn012 2017-09-26 20:25:10 +08:00 via iPhone
@adjclubyb multiprocessing 是 python 内置一个多进程模块,网上有相应的教程的
|
8
impyf104 2017-09-26 22:04:45 +08:00 via iPhone
重写 run 和 stop,留个变量 flag
def run: while(flag): Do something def stop: flag = false 或者用 setdaemon |
9
adjclubyb OP @impyf104 嗯,但如果使用 setdaemon 就有个问题,我想结束掉这几个子线程之后我的主线程下面还要继续执行,程序还没结束呢?
|