python多執行緒

2022-06-06 12:09:08 字數 2597 閱讀 9009

程序一組資源的集合 

執行緒最小執行單位

單執行緒 乙個人幹活  執行緒和執行緒之間是相互獨立的

多執行緒,多個人幹活  

執行緒是最小的單位  ,乙個程序包含多個執行緒  

乙個python檔案就是乙個程序 

單執行緒實現** 

import threading

import time

def ces():

print('打算衛士 ')

time.sleep(2)

def xiyify():

print('洗衣服')

time.sleep(3)

def zuofan():

print('做飯')

time.sleep(1)

star=time.time()

ces()

xiyify()

zuofan()

end=time.time()

print(end-star)

多執行緒實現**

import threading

import time

def ces():

print('打算衛士 ')

time.sleep(2)

def xiyify():

print('洗衣服')

time.sleep(3)

def zuofan():

print('做飯')

time.sleep(1)

stars=time.time()

c=threading.thread(target=ces)

c1=threading.thread(target=xiyify)

c2=threading.thread(target=zuofan)

c.start()

c1.start()

c2.start()

end_time=time.time()

print(end_time-stars)

思考多執行緒有幾個執行緒????????????什麼時候用到多執行緒??/多執行緒**有三個執行緒為什麼執行時間才不到1s執行 ?

有四個執行緒 乙個主線程 三個多執行緒

當執行指令碼時間太長需要用到多執行緒節省時間

因為 我們的**結果是主線程的時間 想要看到多執行緒的執行時間就要更改**,讓主線程等多執行緒執行完畢在執行主線程

import threading

import time

def ces():

print('打算衛士 ')

time.sleep(2)

def xiyify():

print('洗衣服')

time.sleep(3)

def zuofan():

print('做飯')

time.sleep(1)

stars=time.time()

c=threading.thread(target=ces)

c1=threading.thread(target=xiyify)

c2=threading.thread(target=zuofan)

c.start()

c1.start()

c2.start()

#先讓你們都幹活,幹完活了在等待

c.join()#加等待時間等待

c1.join()#加等待時間等待

c2.join()#加等待時間等待

end_time=time.time()

print(end_time-stars)

起乙個執行緒寫這麼多的**,那我們起一百個執行緒,寫一百行是不是**很龐大,這時候需要乙個好的方法
import threading,time,random

def exce():

print(threading.current_thread())#看當前哪乙個程序在執行

time.sleep(random.randint(1,5))

print('洗衣服')

for i in range(10):#你要起多少執行緒就寫多少

t=threading.thread(target=exce)

t.start()

這時候思考如何讓主線程等待主線程呢

思路獲取到當前能存活多少執行緒  ,獲取到了當前的執行緒數,寫乙個死迴圈判斷他,等於一的時候,子執行緒代表執行完了 

兩種方法

等多個子執行緒 執行結束,把啟動的子執行緒放到list裡 在迴圈呼叫t.jion()

import threading,time,random

def exce():

print(threading.current_thread())#看當前哪乙個程序在執行

time.sleep(random.randint(1,5))

print('洗衣服')

for i in range(10):#你要起多少執行緒就寫多少

t=threading.thread(target=exce)

t.start()

while threading.active_count()!=1:

pass

python多執行緒 python多執行緒

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

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

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

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

在單執行緒的情況下,程式是逐條指令順序執行的。同一時間只做乙個任務,完成了乙個任務再進行下乙個任務。比如有5個人吃飯,單執行緒一次只允許乙個人吃,乙個人吃完了另乙個人才能接著吃,假如每個人吃飯都需要1分鐘,5個人就需要5分鐘。多執行緒的情況下,程式就會同時進行多個任務,雖然在同一時刻也只能執行某個任...