上一篇文章: Python線程專題縱覽篇
下一篇文章: Python線程專題2:多線程共享全局變量
在引入多線程以前,咱們先來看一個很是簡單的實例。python
實例:segmentfault
#單線程實例 import time def mark(index): print("Mark的帥,遠近聞名,第%d次傳播"%index) #暫停一秒,否則看不到效果哦 time.sleep(1) if __name__=="__main__": for i in range(6): mark(i)
結果:按照順序依次打印多線程
上面是單線程顯示效果,如今咱們來用多線程處理一下。在這以前,咱們應該要知道,thread模塊是python比較底層的模塊,spa
爲了方便咱們控制thread,python又使用threading模塊對thread進行了封裝,下面就用到了threading模塊。線程
實例:code
#多線程實例 import time import threading def mark(index): print("Mark的帥,遠近聞名,第%d次傳播"%index) #暫停一秒,否則看不到效果哦 time.sleep(1) if __name__=="__main__": for i in range(6): #定義子線程 t=threading.Thread(target=mark,args=(i,)) #啓動子線程 t.start()
效果:blog
看到效果了,原來的單線程,順序執行,至少須要6s,而使用多線程,差很少1秒多一點就完成,可見運行效率的差距,這也是咱們爲何要使用多線程的緣由。圖片
要驗證這一點很簡單,直接看代碼:get
#主線程會等待全部子線程執行完成才結束 import time import threading def mark(): #暫停3秒 time.sleep(3) print("Mark的帥,遠近聞") if __name__=="__main__": print("程序開始執行了") # 定義子線程 t = threading.Thread(target=mark) # 啓動子線程 t.start() print("單線程程序到這裏主線程就會結束了,多線程呢,看看吧")
效果:it