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 了
沒有留言:
張貼留言