python多线程中无限循环线程退出问题

  • Post author:
  • Post category:python




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 版权协议,转载请附上原文出处链接和本声明。