Python守护线程教程
在
守护线程是指在程序运行的时候在后台提供一种通用服务的线程,非守护线程也叫用户线程,是由用户创建的线程。
Python守护线程与非守护线程
当主线程结束时,守护线程也会一起销毁,而主线程的退出,对非守护线程没有任何影响,因为主线程和守护线程互不影响。
Python创建守护线程详解
语法
class MyThread(threading.Thread):
def __init__(self, params):
pass
def run(self):
pass
t1 = MyThread(params)
t.setDaemon(True)
t1.start()
说明
我们在创建线程实例之后,调用线程实例的 setDaemon 函数,即可以将线程设置为守护线程,同时,setDaemon 函数必须在 start() 之前调用。
案例
使用 threading 模块创建线程
使用 threading 模块自定义线程类创建守护线程
import threading
import time
class MyThread(threading.Thread):
def __init__(self, name, n):
super(MyThread, self).__init__()
self.name = name
self.n = n
def run(self):
while True:
print("Thread ", self.name, "is running")
time.sleep(self.n)
def main():
t1 = MyThread("t1", 3)
t1.setDaemon(True)
t1.start()
t2 = MyThread("t2", 2)
t2.setDaemon(True)
t2.start()
if __name__ == "__main__":
print("嗨客网(www.haicoder.net)")
main()
程序运行后,控制台输出如下:
我们在创建了线程实例之后,使用线程实例的 setDaemon 方法将线程设置为守护线程,此时,我们看到主线程退出之后,我们的守护线程也立刻退出了,而不像用户线程,如果主线程退出,用户线程不受任何影响。
这里,我们的守护线程虽然有
Python守护线程总结
当主线程结束时,守护线程也会一起销毁,而主线程的退出,对非守护线程没有任何影响,因为主线程和守护线程互不影响。