📅  最后修改于: 2023-12-03 15:19:08.717000             🧑  作者: Mango
在 Python 中,重启线程的操作是比较简单的。下面我们就通过代码来讲解。
首先,我们需要先了解如何暂停线程。
import time
import threading
class MyThread(threading.Thread):
def run(self):
print("Start")
for i in range(1, 5):
time.sleep(1)
print("working...")
print("End")
if __name__ == '__main__':
t = MyThread()
t.start()
time.sleep(2)
t.join()
上面的代码中,我们使用了 time.sleep()
方法来让线程 sleep 2 秒钟,而 t.join()
方法则是等待线程结束。
接下来,我们看一下如何重启线程。
if __name__ == '__main__':
t = MyThread()
t.start()
time.sleep(2)
t._stop() # 终止线程
t = MyThread() # 新建线程
t.start()
t.join()
上面的代码中,我们先是终止了之前的线程,然后新建了一个线程并启动。这样就达到了重启线程的目的。
当然,使用 _stop()
方法来终止线程是不太安全的,更好的方法是使用 Event
来控制线程的启动和停止。
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.event = threading.Event()
def run(self):
print("Start")
for i in range(1, 5):
self.event.wait() # 等待启动事件
print("working...")
print("End")
if __name__ == '__main__':
t = MyThread()
t.start()
time.sleep(2)
t.event.set() # 启动线程
time.sleep(2)
t.event.clear() # 停止线程
time.sleep(2)
t.event.set() # 再次启动线程
t.join()
上面的代码中,我们使用了 Event
来控制线程的启动和停止。当 event
对象被设置时,线程就会开始执行任务,当 event
对象被清除时,线程就会停止。
以上就是 Python 如何重启线程的介绍。