多執行緒
行程
程式:是指令和資料的有序集合,其本身沒有任何運行的含義,是一個靜態的概念
行程:處理機制上的一次執行程序,他是一個動態的概念
狀態:就緒態、運行態、阻塞態
CPU(4核)可以同時執行4個執行緒
執行緒
行程中包含若干個執行緒,行程作為分配資源的基本單位,執行緒作為獨立運行和獨立調度的基本單位
多執行緒
程式執行時,程式本身就是主執行緒,手動創建的叫子執行緒,他們的關系是父子行程
import threading import time def run1(name): while(True): print(name,"**") time.sleep(1) def run2(name): while(True): print(name,"===") time.sleep(3) #創建執行緒 t1=threading.Thread(target=run1,args=("t1",)) t2=threading.Thread(target=run2,args=("t2",)) t1.start() #啟動執行緒 t2.start() # 11.4 t1.join() #阻塞等待t1結束并回收資源 t2.join() #阻塞等待t2結束并回收資源
執行緒鎖
保護共享資源
import threading import time lock=threading.Lock() #創建一個執行緒鎖 num=100 def run(name): global num #設定num為全域變數,只能放在里面 while(True): lock.acquire() #上鎖 if(num==0): break num=num-1 print("執行緒",name,"目前num:",num) lock.release() #釋放鎖 time.sleep(1) #創建執行緒 for i in range(5): t=threading.Thread(target=run,args=(i+1,)) t.start()
多行程
if __name__ == '__main__': __name__變數為'__main__'時才執行,本檔案時成立,當被作為模塊引入時不成立
from multiprocessing import Process import time def run(name): print("行程",name,"執行了") time.sleep(5) #創建行程 if __name__ == '__main__': #windows行程要寫在里面 p1=Process(target=run,args=("p1",)) p2=Process(target=run,args=("p2",)) p1.start() p2.start()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158678.html
標籤:Python
上一篇:python第七周練習題
