1. 程式人生 > >python中的守護執行緒

python中的守護執行緒

守護執行緒的作用是什麼?用兩段程式碼來說明

程式碼段1:

# -*- coding: utf-8 -*-
import threading
import time


def send_message(mes):
    print "before send message"
    time.sleep(2)
    print "after send message"


def get_message(mes):
    print "before get message"
    time.sleep(2)
    print "after get message"


if __name__ == "__main__":
    thread1 = threading.Thread(target=send_message, args=("",))
    thread2 = threading.Thread(target=get_message, args=("",))
    thread1.start()
    thread2.start()
    print "主執行緒執行完畢"


當我執行此程式碼的時候,輸出結果如下:而且很明顯是在主執行緒執行完畢後,停留了兩秒,程式才終止的。
在這裡插入圖片描述
那麼如果想在主執行緒執行完成後,馬上就將子執行緒幹掉該如何做呢?請看如下程式碼

# -*- coding: utf-8 -*-
import threading
import time


def send_message(mes):
    print "before send message"
    time.sleep(2)
    print "after send message"


def get_message(mes):
    print "before get message"
    time.sleep(2)
    print "after get message"


if __name__ == "__main__":
    thread1 = threading.Thread(target=send_message, args=("",))
    thread2 = threading.Thread(target=get_message, args=("",))
    thread1.setDaemon(True)
    thread2.setDaemon(True)
    thread1.start()
    thread2.start()
    print "主執行緒執行完畢"

此時當主執行緒執行完成後,就會立馬乾掉子執行緒
在這裡插入圖片描述