2019年6月28日 星期五

Python stop looping thread, 跑回圈的 thread 的停止方法

先看Code吧


import threading
import time


def process_1():
counter = 0
t = threading.currentThread()
while getattr(t, "loop_alive", True):
print('process_1counter:', counter)
counter += 1
time.sleep(1)
if counter > 80:
break
print('process_1 thread stop')


p1_thread = threading.Thread(target=p2, args=())
p1_thread.start()

time.sleep(10)

p1_thread.loop_alive = False




原理:
運用 threading.currentThread() 與 getattr讓 Thread 產生一個對外的變數,透過那個變數去終止迴圈。

以前我是把迴圈寫在 Class 裡面的某個 function,再用 class的變數去控制迴圈,找到這個新方法之後就不用依靠 Class 了

沒有留言:

張貼留言