我在 python 中使用线程时遇到一些问题。 由于某些原因我必须创建 2 个线程。每个线程都在做几乎相同的事情: 接收数据并发送数据的循环。 我的问题是:我不知道如何停止这些线程。数据是连续发送的。 我尝试使用“KeyboardInterrupt”和“myThread.daemon”,但循环仍在控制台中运行。 因此,如果您知道阻止它们的解决方案(使用“CTRL+C”或“按键”),我将不胜感激。
这是我的代码的全局功能:
#=========#
#Thread 1 #
#=========#
class ThreadEmissionSerie1(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
variable = 0
while 1:
try:
print "variable 1 : ", variable
variable += 2
except:
pass
#=========#
#Thread 2 #
#=========#
class ThreadEmissionSerie2(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
variable = 0
while 1:
try:
print "variable 2 : ", variable
variable += 3
except:
pass
print "starting the threads"
th_E1 = ThreadEmissionSerie1()
th_E2 = ThreadEmissionSerie2()
th_E1.daemon = True
th_E2.daemon = True
th_E1.start()
th_E2.start()
我希望有人能帮助我:) 该程序应该在 Windows 和 Linux 上运行 谢谢, 亚瑟
最佳答案
我认为答案正如我所评论的:在 IDLE 下,“模块”以 IDLE 的 shell 作为主线程运行,因此守护线程不会死亡。
关于python - 停止两个循环线程连续接收和发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328508/