這一篇文章是要說當你要同時做很多事情時,就可以用到threading達成多執行緒
import threading 引入 threading
thread.start() 線程啟動
thread.join() 等待線程中止,也可以當作排隊用的
thread.is_alive() , thread.isAlive(): 返回線程是否活動的。
import threading #q=Queue.Queue() def thread_job(): sum=0 print 'T1 start\n' for i in range(10): print "t1:" print i sum+=i time.sleep(0.5) print sum q.put(sum) print 'T1 finish\n' def T2_job(): print 'T2 start\n' #a=q.get() a=46 for i in range(5): print "t2:" a+=i print a time.sleep(2) print a print 'T2 finish\n' Thread1=threading.Thread(target=thread_job) Thread2=threading.Thread(target=T2_job) Thread1.start() Thread2.start()
target= function的名稱
上面的結果是Thread1和Thread2這兩條執行緒同時跑
結果:
假如要做排程而不是同時處理的話可以用join()
thread部分可以改成這樣:
Thread1.start()
Thread1.join()
Thread2.start()
所以Thread1執行完才會執行Thread2
結果:
要等其他執行緒完成在進行下一步動作的話可以用 is_alive(),他可以看執行緒是否已完成
thread部分可以改成這樣:
Thread1=threading.Thread(target=thread_job) Thread2=threading.Thread(target=T2_job) Thread3=threading.Thread(target=T2_job) Thread1.start() Thread1.join() Thread2.start() Thread3.start() while Thread2.is_alive() or Thread3.is_alive(): #or Thread3.is_alive(): time.sleep(1) print u"你成功了"
結果: