5.1.14 守护线程

Posted beallaliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.1.14 守护线程相关的知识,希望对你有一定的参考价值。

守护进程与守护线程的区别:

守护进程:主进程代码运行完后,守护进程就终止。

守护线程:主进程运行完后,守护线程就终止。不过,如果主线程有多个线程的话,

其他线程未执行完,主线程就还在。守护线程会等主进程下的所有线程都执行完才终止。

 

守护进程:

from threading import Thread
import time

def sayhi(name):
    time.sleep(2)
    print(%s say hello %name)

if __name__ == __main__:
    t=Thread(target=sayhi,args=(egon,))
    # t.setDaemon(True) #必须在t.start()之前设置
    t.daemon=True
    t.start()

    print(主线程)
    print(t.is_alive())

运行结果:

技术分享图片
主线程
True
View Code

 

守护线程:

from threading import Thread
import time

def foo():
    print(123)
    time.sleep(1)
    print("end123")

def bar():
    print(456)
    time.sleep(3)
    print("end456")

if __name__ == __main__:
    t1=Thread(target=foo)
    t2=Thread(target=bar)

    t1.daemon=True
    t1.start()
    t2.start()
    print("main-------")

运行结果:

123
456
main-------
end123
end456

 

守护线程2:

from threading import Thread
import time

def foo():
    print(123)
    time.sleep(1)
    print("end123")

def bar():
    print(456)
    time.sleep(3)
    print("end456")

if __name__ == __main__:
    t1=Thread(target=foo)
    t2=Thread(target=bar)

    t2.daemon=True
    t1.start()
    t2.start()
    print("main-------")

运行结果:

技术分享图片
123
456
main-------
end123
View Code

 

以上是关于5.1.14 守护线程的主要内容,如果未能解决你的问题,请参考以下文章

守护进程与守护线程的区别

守护线程与守护进程

JUC并发编程 -- 主线程与守护线程

54_并发编程-线程-守护线程

网络编程之多线程——守护线程

2-5 守护线程