Python主線程和子線程

Python主線程和子線程

一处嫌、setDaemon(False)

當一個進程啟動之后糟描,會默認產(chǎn)生一個主線程吨掌,因為線程是程序執(zhí)行的最小單位斩个,當設置多線程時胯杭,主線程會創(chuàng)建多個子線程,在Python中受啥,默認情況下就是setDaemon(False)做个,主線程執(zhí)行完自己的任務以后,就退出了滚局,此時子線程會繼續(xù)執(zhí)行自己的任務居暖,直到自己的任務結束;

案例

import threading
import time

def thread():
    time.sleep(2)
    print('---子線程結束---')

def main():
    t1 = threading.Thread(target=thread)
    t1.start()
    print('---主線程---結束')

if __name__ == '__main__':
    main()

執(zhí)行結果

---主線程結束---
---子線程結束---

二藤肢、setDaemon(True)

當我們使用setDaemon(True)時太闺,這是子線程為守護線程,主線程一旦執(zhí)行結束嘁圈,則全部子線程被強制終止省骂。

案例

import threading
import time

def thread():
    time.sleep(2)
    print('---子線程結束---')

def main():
    t1 = threading.Thread(target=thread)
    t1.setDaemon(True)  # 設置子線程守護主線程
    t1.start()
    print('---主線程結束---')

if __name__ == '__main__':
    main()

執(zhí)行結果

---主線程結束---  # 只有主線程結束,子線程來不及執(zhí)行就被強制結束

三最住、join(線程同步)

join所完成的工作就是線程同步钞澳,即主線程任務結束以后,進入堵塞狀態(tài)涨缚,一直等待所有的子線程結束以后轧粟,主線程再終止

  • 當設置守護線程時,含義是主線程對于子線程等待timeout的時間將會殺死該子線程脓魏,最后退出程序兰吟。所以說,如果有10個子線程茂翔,全部的等待時間就是每個timeout的累加和揽祥。簡單的來說,就是給每個子線程一個timeout的時間檩电,讓他去執(zhí)行,時間一到,不管任務有沒有完成俐末,直接殺死料按。
  • 沒有設置守護線程時,主線程將會等待timeout的累加和這樣的一段時間卓箫,時間一到载矿,主線程結束,但是并沒有殺死子線程烹卒,子線程依然可以繼續(xù)執(zhí)行闷盔,直到子線程全部結束,程序退出旅急。

案例

import threading
import time

def thread():
    time.sleep(2)
    print('---子線程結束---')

def main():
    t1 = threading.Thread(target=thread)
    t1.setDaemon(True)
    t1.start()
    t1.join(timeout=1)  # 1逢勾、線程同步,主線程堵塞1s然后主線程結束藐吮,子線程繼續(xù)執(zhí)行
                        # 2溺拱、如果不設置timeout參數(shù)就等子線程結束主線程再結束
                        # 3、如果設置了setDaemon=True和timeout=1主線程等待1s后會強制殺死子線程谣辞,然后主線程結束
    print('---主線程結束---')

if __name__ == '__main__':
    main()

執(zhí)行結果

---主線程結束---
---子線程結束---
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末迫摔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泥从,更是在濱河造成了極大的恐慌句占,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躯嫉,死亡現(xiàn)場離奇詭異纱烘,居然都是意外死亡,警方通過查閱死者的電腦和手機和敬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門凹炸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人昼弟,你說我怎么就攤上這事啤它。” “怎么了舱痘?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵变骡,是天一觀的道長。 經(jīng)常有香客問我芭逝,道長塌碌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任旬盯,我火速辦了婚禮台妆,結果婚禮上翎猛,老公的妹妹穿的比我還像新娘。我一直安慰自己接剩,他們只是感情好切厘,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著懊缺,像睡著了一般疫稿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹃两,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天遗座,我揣著相機與錄音,去河邊找鬼俊扳。 笑死途蒋,一個胖子當著我的面吹牛,可吹牛的內容都是我干的拣度。 我是一名探鬼主播碎绎,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抗果!你這毒婦竟也來了筋帖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤冤馏,失蹤者是張志新(化名)和其女友劉穎日麸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逮光,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡代箭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了涕刚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗡综。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖杜漠,靈堂內的尸體忽然破棺而出极景,到底是詐尸還是另有隱情,我是刑警寧澤驾茴,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布盼樟,位于F島的核電站,受9級特大地震影響锈至,放射性物質發(fā)生泄漏晨缴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一峡捡、第九天 我趴在偏房一處隱蔽的房頂上張望击碗。 院中可真熱鬧筑悴,春花似錦、人聲如沸延都。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晰房。三九已至,卻和暖如春射沟,著一層夾襖步出監(jiān)牢的瞬間殊者,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工验夯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留猖吴,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓挥转,卻偏偏與公主長得像海蔽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绑谣,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容