摘要:上一篇文章線程專題縱覽篇下一篇文章線程專題多線程共享全局變量在引入多線程之前,我們先來看一個(gè)非常簡單的實(shí)例。實(shí)例單線程實(shí)例的帥,遠(yuǎn)近聞名第次傳播暫停一秒,不然看不到效果哦結(jié)果按照順序依次打印上面是單線程顯示效果,現(xiàn)在我們來用多線程處理一下。
上一篇文章:Python線程專題縱覽篇
下一篇文章:Python線程專題2:多線程共享全局變量
在引入多線程之前,我們先來看一個(gè)非常簡單的實(shí)例。
實(shí)例:
#單線程實(shí)例 import time def mark(index): print("Mark的帥,遠(yuǎn)近聞名,第%d次傳播"%index) #暫停一秒,不然看不到效果哦 time.sleep(1) if __name__=="__main__": for i in range(6): mark(i)
結(jié)果:按照順序依次打印
上面是單線程顯示效果,現(xiàn)在我們來用多線程處理一下。在這之前,我們應(yīng)該要知道,thread模塊是python比較底層的模塊,
為了方便我們控制thread,python又使用threading模塊對(duì)thread進(jìn)行了封裝,下面就用到了threading模塊。
實(shí)例:
#多線程實(shí)例 import time import threading def mark(index): print("Mark的帥,遠(yuǎn)近聞名,第%d次傳播"%index) #暫停一秒,不然看不到效果哦 time.sleep(1) if __name__=="__main__": for i in range(6): #定義子線程 t=threading.Thread(target=mark,args=(i,)) #啟動(dòng)子線程 t.start()
效果:
看到效果了,原來的單線程,順序執(zhí)行,至少需要6s,而使用多線程,差不多1秒多一點(diǎn)就完成,可見運(yùn)行效率的差距,這也是我們?yōu)槭裁匆褂枚嗑€程的原因。
2、主線程會(huì)等待所有子線程執(zhí)行完成才結(jié)束要驗(yàn)證這一點(diǎn)很簡單,直接看代碼:
#主線程會(huì)等待所有子線程執(zhí)行完成才結(jié)束 import time import threading def mark(): #暫停3秒 time.sleep(3) print("Mark的帥,遠(yuǎn)近聞") if __name__=="__main__": print("程序開始執(zhí)行了") # 定義子線程 t = threading.Thread(target=mark) # 啟動(dòng)子線程 t.start() print("單線程程序到這里主線程就會(huì)結(jié)束了,多線程呢,看看吧")
效果:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42395.html
摘要:上一篇文章進(jìn)程專題完結(jié)篇多進(jìn)程處理的一般建議下一篇文章線程專題多線程使用的必要性進(jìn)程線程進(jìn)程能夠完成多任務(wù),比如在一個(gè)電腦上可以運(yùn)行多個(gè)軟件。由于占用資源少,也使得多線程程序并發(fā)比較高。 上一篇文章:Python進(jìn)程專題完結(jié)篇:多進(jìn)程處理的一般建議下一篇文章:Python線程專題1:多線程使用的必要性 進(jìn)程VS線程 進(jìn)程:能夠完成多任務(wù),比如在一個(gè)電腦上可以運(yùn)行多個(gè)軟件。線程:也能夠...
摘要:上一篇文章線程專題多線程使用的必要性下一篇文章線程專題對(duì)象在一個(gè)進(jìn)程內(nèi)的所有線程共享全局變量。但多線程對(duì)全局變量的更改會(huì)導(dǎo)致變量值得混亂。 上一篇文章: Python線程專題1:多線程使用的必要性下一篇文章:Python線程專題3:thread對(duì)象 在一個(gè)進(jìn)程內(nèi)的所有線程共享全局變量。但多線程對(duì)全局變量的更改會(huì)導(dǎo)致變量值得混亂。 實(shí)例:驗(yàn)證同一個(gè)進(jìn)程內(nèi)所有線程共享全局變量 代碼: #...
摘要:語法創(chuàng)建定時(shí)器對(duì)象,在秒后運(yùn)行函數(shù),和提供傳遞給的參數(shù)和關(guān)鍵字參數(shù)。在調(diào)用方法后才能啟動(dòng)計(jì)定時(shí)器。如果函數(shù)還未執(zhí)行,取消定時(shí)器。否則,鎖將保持已鎖定狀態(tài)。 上一篇文章:Python線程專題3:thread對(duì)象下一篇文章:Python線程專題5:信號(hào)量與有邊界的信號(hào)量 Timer對(duì)象、Lock對(duì)象、Rlock對(duì)象 Timer對(duì)象 Timer對(duì)象用于在稍后的某個(gè)時(shí)間執(zhí)行一個(gè)函數(shù)。 語法:...
摘要:實(shí)例使用隊(duì)列一般可以簡化多線程的程序。實(shí)際開發(fā)中,此處應(yīng)該使用有用的工作代替完成,指示收到和返回哨兵好帥運(yùn)行結(jié)果好帥多線程按順序執(zhí)行直接看實(shí)例吧,控制多線程的執(zhí)行順序代碼控制多線程的執(zhí)行順序創(chuàng)建實(shí)例,第一個(gè)開始不上鎖結(jié)果 上一篇文章:Python線程專題9:線程終止與掛起、實(shí)用工具函數(shù)下一篇文章:敬請(qǐng)期待 queue模塊實(shí)現(xiàn)了各種【多生產(chǎn)者-多消費(fèi)者】隊(duì)列。可用于在執(zhí)行的多個(gè)線程之間安...
摘要:上一篇文章線程專題條件變量下一篇文章線程專題線程終止與掛起使用諸如之類的鎖原語時(shí),必須多加小心,鎖的錯(cuò)誤使用很容易導(dǎo)致死鎖或相互競(jìng)爭。依賴鎖的代碼應(yīng)該保證當(dāng)出現(xiàn)異常時(shí)可以正常的釋放鎖。 上一篇文章:Python線程專題7:條件變量下一篇文章:Python線程專題9:線程終止與掛起 使用諸如Lock、RLock、Semphore之類的鎖原語時(shí),必須多加小心,鎖的錯(cuò)誤使用很容易導(dǎo)致死鎖或...
閱讀 2975·2021-09-23 11:32
閱讀 2938·2021-09-22 15:12
閱讀 1719·2019-08-30 14:07
閱讀 3461·2019-08-29 16:59
閱讀 1651·2019-08-29 11:11
閱讀 2314·2019-08-26 13:50
閱讀 2436·2019-08-26 13:49
閱讀 2630·2019-08-26 11:49