Spe*_*987 5 python multithreading kill terminate python-3.x
在此脚本中:
import threading, socket
class send(threading.Thread):
def run(self):
try:
while True:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((url,port))
s.send(b"Hello world!")
print ("Request Sent!")
except:
s.close()
except KeyboardInterrupt:
# here i'd like to kill all threads if possible
for x in range(800):
send().start()
Run Code Online (Sandbox Code Playgroud)
是否可以杀死除键盘中断之外的所有线程?我在网上搜索过,是的,我知道已经有人问过这个问题了,但我对Python真的很陌生,而且我对堆栈上提出的其他问题的方法不太了解。
不能。单个线程不能被强制终止(这是不安全的,因为它可能会保留锁,从而导致死锁等)。
做这样的事情有两种方法:
daemon线程启动,主线程等待Event/Condition并在其中一个线程设置Event或通知Condition. 一旦(唯一的)非daemon线程退出,进程就会终止,从而结束所有daemon线程Event,因此它们在设置后不久就会协同退出。| 归档时间: |
|
| 查看次数: |
16983 次 |
| 最近记录: |