1. 程式人生 > >最簡單的多線程並發與守護線程與join的運用

最簡單的多線程並發與守護線程與join的運用

sleep all oot rgs -- 時間 ddd 結束 sel

import threading import time def run(n): print("talk",n) time.sleep(3) #run("t1") #run("t2") t1=threading.Thread(target=run,args=("t1",)) t2=threading.Thread(target=run,args=("t2",)) #t1.start() #t2.start() ##類的多線程方式 class MyThread(threading.Thread): def __init__(self,n,sleep): super(MyThread,self).__init__() self.n=n self.sleep=sleep def run(self): print("talk me all you know",self.n) time.sleep(self.sleep) print("so esay %s",self.n) #t1=MyThread("t1",2) #t2=MyThread("t2",4) #t1.start() #t2.start() #t1.join() #t2.join() #等待t2的結果(這一步後直接計算時間得到的就是2個線程執行完所花的時間) #print("主要程序執行完畢")

##計算所有線程花費的時間,守護線程(非守護線程一結束程序就結束),看是否是主線程,活躍的線程數量

def run(n):
    print("task",n)
    time.sleep(2)
stat_time=time.time()
loot=[] #創建一個空列表(存線程實例)
for i in range (50):
    t=threading.Thread(target=run,args=("t-%s"%i,))
    t.setDaemon(True)#把當前線程設置為守護線程
    t.start()
    loot.append(t) #為了不阻塞後面的線程啟動,不在這裏join,先放到一個列表裏

#for t in loot:#循環線程實例列表,等待所有線程執行完畢
     #t.join() #等待一個線程全部執行完再執行其他線程(把並程改成了串行)
print("-----ddddd-----",threading.current_thread(),threading.active_count())#看是否是主線程,活躍的線程數量
print("cost:",time.time()-stat_time)

最簡單的多線程並發與守護線程與join的運用