python多线程中无限循环线程退出问题
import threading
import time
"""
问题:在创建一个包含无限循环的子线程的时候
无法控制子线程的退出
第一次在写树莓派应用的时候就出现了这个问题
这次在写网络编程大作业的时候又出现了这个问题
一定得解决了
"""
# plan 1 通过一个终止标识来终止线程
# def run():
# while 1:
# print("线程启动")
# global stop_threads
# if stop_threads:
# break
# if __name__ == "__main__":
# stop_threads = False
# t1 = threading.Thread(target=run)
# t1.start()
# time.sleep(1)
# stop_threads = True
# t1.join()
# print("退出")
# plan 1.1 我不想等1秒后退出,我想介入
# 1.通过输入来介入(在一个子线程内输入)
def run():
while 1:
# print("线程启动1")
time.sleep(1)
global stop_threads
if stop_threads:
break
def run2():
while 1:
# print("线程启动2")
time.sleep(1)
global stop_threads
code = input("输入quit退出\n")
if code == "quit":
stop_threads = True
break
if __name__ == "__main__":
stop_threads = False
t1 = threading.Thread(target=run)
t2 = threading.Thread(target=run2)
t1.start()
t2.start()
t1.join()
t2.join()
print("退出")
版权声明:本文为dom_l_z原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。