程式:是指令和資料的有序集合,其本身沒有任何執行的含義,是乙個靜態的概念
程序:處理機制上的一次執行過程,他是乙個動態的概念
狀態:就緒態、執行態、阻塞態
cpu(4核)可以同時執行4個執行緒
程序中包含若干個執行緒,程序作為分配資源的基本單位,執行緒作為獨立執行和獨立排程的基本單位
程式執行時,程式本身就是主線程,手動建立的叫子執行緒,他們的關係是父子程序
importthreading
import
time
defrun1(name):
while
(true):
print(name,"**"
) time.sleep(1)
defrun2(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結束並**資源
保護共享資源
importthreading
import
time
lock=threading.lock() #
建立乙個執行緒鎖
num=100
defrun(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 importprocess
import
time
defrun(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()
python 多執行緒入門
import threading from time import sleep deflol for i in range 3 print loling.d i sleep 1 defweiwa for i in range 3 print weiwa.d i sleep 1 if name mai...
多執行緒入門
跟前幾篇的風格一樣,我會在開篇的時候舉乙個現實生活中的例子,通過這個例子來對映一些晦澀枯燥的計算機程式設計專業知識,在讓讀者朋友很好地理解理論概念的同時,又避免了閱讀教科書時的枯燥感覺。這次我要舉的例子是公司。不一定是it公司,盡量和程式設計領域遠一點兒吧,那就假設是一家搬家公司吧。假如我們把公司看...
python多執行緒 python多執行緒
通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...