進程以及狀態(tài)
什么是進程 程序:例如xxx.py這是程序,是一個靜態(tài)的
進程:一個程序運行起來后,代碼+用到的資源 稱之為進程,它是操作系統(tǒng)分配資源的基本單元。
不僅可以通過線程完成多任務(wù),進程也是可以的-
進程的狀態(tài)
工作中,任務(wù)數(shù)往往大于cpu的核數(shù),即一定有一些任務(wù)正在執(zhí)行,而另外一些任務(wù)在等待cpu進行執(zhí)行,因此導(dǎo)致了有了不同的狀態(tài)就緒態(tài):運行的條件都已經(jīng)慢去,正在等在cpu執(zhí)行
執(zhí)行態(tài):cpu正在執(zhí)行其功能
等待態(tài):等待某些條件滿足,例如一個程序sleep了,此時就處于等待態(tài) Process參數(shù)如下:
Process(group, target, name, args , kwargs)
target:如果傳遞了函數(shù)的引用,可以任務(wù)這個子進程就執(zhí)行這里的代碼
args:給target指定的函數(shù)傳遞的參數(shù),以元組的方式傳遞
kwargs:給target指定的函數(shù)傳遞命名參數(shù)
name:給進程設(shè)定一個名字,可以不設(shè)定
group:指定進程組,大多數(shù)情況下用不到
Process創(chuàng)建的實例對象的常用方法:
start():啟動子進程實例(創(chuàng)建子進程)
is_alive():判斷進程子進程是否還在活著
join([timeout]):是否等待子進程執(zhí)行結(jié)束,或等待多少秒
terminate():不管任務(wù)是否完成,立即終止子進程
Process創(chuàng)建的實例對象的常用屬性:
name:當(dāng)前進程的別名,默認(rèn)為Process-N,N為從1開始遞增的整數(shù)
pid:當(dāng)前進程的pid(進程號)