python程式多執行緒 PYTHON多執行緒

2021-10-12 10:49:52 字數 1468 閱讀 8603

在單執行緒的情況下,程式是逐條指令順序執行的。同一時間只做乙個任務,完成了乙個任務再進行下乙個任務。比如有5個人吃飯,單執行緒一次只允許乙個人吃,乙個人吃完了另乙個人才能接著吃,假如每個人吃飯都需要1分鐘,5個人就需要5分鐘。多執行緒的情況下,程式就會同時進行多個任務,雖然在同一時刻也只能執行某個任務的一條指令,但是由於cpu執行非常快。可以在極短的時間內切換到另乙個任務。從巨集觀效果來看,cpu是多個任務同時執行的。也拿剛才的吃飯做比喻,多執行緒就相當於5個人同時吃飯,5個人吃完花費的時間和乙個人相同,也是1分鐘。效率的提高是不言而喻的。下面我們用程式來實現一下,首先是單執行緒。

importtime

defbegin(n):

print("第%s個人開始吃飯"%(n+1))

time.sleep(1)

print("第%s個人吃完飯了"%(n+1))

begin_time = time.time()#開始吃飯時間forcount inrange(5):

begin(count)

print("5個人吃飯花費的總時間為",time.time()-begin_time)#統計吃飯用時

執行結果如下:

第1個人開始吃飯

第1個人吃完飯了

第2個人開始吃飯

第2個人吃完飯了

第3個人開始吃飯

第3個人吃完飯了

第4個人開始吃飯

第4個人吃完飯了

第5個人開始吃飯

第5個人吃完飯了

5個人吃飯花費的總時間為

5.002005100250244

從執行結果可以清晰看出,總共用了5秒時間。

下面我們再試試多執行緒:

importthreading

importtime

defbegin(n):

print("第%s個人開始吃飯"%n)

time.sleep(1)

print("第%s個人吃完飯了"%n)

begin_time = time.time()

t_result =

forcount inrange(5):

t = threading.thread(target=begin, args=("%s"%(count+1),))

t.start()

fort int_result:

t.join()

print("5個人吃飯花費的總時間為",time.time()-begin_time)

程式執行結果如下:

第1個人開始吃飯

第2個人開始吃飯

第3個人開始吃飯

第4個人開始吃飯

第5個人開始吃飯

第2個人吃完飯了

第1個人吃完飯了

第5個人吃完飯了

第4個人吃完飯了

第3個人吃完飯了

5個人吃飯花費的總時間為

1.0021629333496094

從執行結果可以清晰看出,總共用了1秒時間。

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...

ctrl c退出python多執行緒程式

多工並行處理多數需要用到多執行緒,第一次用python寫乙個任務,需要同時監控兩個狀態,就使用了下多執行緒,但測試時候ctrl c居然退不出,我以為是bug,結果看了下確實是這樣的。如果乙個python程式用了多執行緒,當子執行緒沒有結束時,用ctrl c是關閉不了主線程的,這時候就只能用kill命...

python多執行緒詳解 Python多執行緒詳解

前言 由於最近的工作中一直需要用到python去處理資料,而在面對大量的資料時,python多執行緒的優勢就展現出來了。因而藉此機會,盡可能詳盡地來闡述python多執行緒。但對於其更底層的實現機制,在此不做深究,僅是對於之前的一知半解做個補充,也希望初學者能夠通過這篇文章,即便是照葫蘆畫瓢,也能夠...