python多執行緒(二)
阿新 • • 發佈:2018-11-24
開啟執行緒的兩種方式
#方式一 import threading import time def run(n): time.sleep(2) print("runing",n) start_time=time.time() if __name__ == '__main__': t1=threading.Thread(target=run,args=("T1",)) #執行緒 t2=threading.Thread(target=run,args=("T2",)) t1.start() t2.start() print("主執行緒") #輸出結果: ''' 主執行緒 runing T1 runing T2 '''
#方式二 #類的執行緒 import threading import time class pronse(threading.Thread): def __init__(self,n): super(pronse,self).__init__() self.n=n def run(self): time.sleep(0.22) print("%s is runing !!"% self.n) if __name__=='__main__': p1=pronse("薛琪") p2=pronse("張立朋") p1.start() p2.start() print("主執行緒")
在這裡舉一個簡單的例子,子執行緒與主執行緒的優先執行順序:
import time import threading def run(n): print("task:",n) time.sleep(2) #等待兩秒 print("task_done:",n) start_time=time.time() if __name__=='__main__': for i in range(50): #建立50次,非常迅速的建立完畢 t=threading.Thread(target=run,args=("t--%s" %i,)) t.start() #開啟執行緒 print("主執行緒 is all finsind") #此時主執行緒已執行完畢,時間也打印出來了為:0.017952442169189453 print(time.time()-start_time) #但整個程式尚未結束,等待兩秒後子執行緒列印完畢,結束整個程式 ''' 輸出結果為: task_done: t--1 task_done: t--3 task_done: t--5 task_done: t--6 task_done: t--4 task_done: t--8 task_done: t--9 task_done: t--7 task_done: t--10 task_done: t--12 task_done: t--11 task_done: t--13 task_done: t--14 task_done: t--17 task_done: t--15 task_done: t--16 task_done: t--19 task_done: t--20 task_done: t--18 task_done: t--21 task_done: t--22 task_done: t--24 task_done: t--25 task_done: t--23 task_done: t--27 task_done: t--26 task_done: t--28 task_done: t--31 task_done: t--32 task_done: t--30 task_done: t--29 task_done: t--33 task_done: t--34 task_done: t--35 task_done: t--36 task_done: t--39 task_done: t--40 task_done: t--37 task_done: t--38 task_done: t--43 task_done: t--42 task_done: t--41 task_done: t--45 task_done: t--44 task_done: t--46 task_done: t--47 task_done: t--48 task_done: t--49 '''
注:小編現在還是正在學習的一個菜鳥,如有錯請多多指教