程序一組資源的集合
執行緒最小執行單位
單執行緒 乙個人幹活 執行緒和執行緒之間是相互獨立的
多執行緒,多個人幹活
執行緒是最小的單位 ,乙個程序包含多個執行緒
乙個python檔案就是乙個程序
單執行緒實現**
import threadingimport 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 threadingimport 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 threadingimport 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,randomdef 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,randomdef 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分鐘。多執行緒的情況下,程式就會同時進行多個任務,雖然在同一時刻也只能執行某個任...