day 31 进程的其他方法 进程锁 进程队列
一。進(jìn)程的其他方法
1.? ?.name? ? ? 進(jìn)程名? ?(可指定)
2.? .pid? ? ?進(jìn)程號(hào)
3.? ?os.getpid? ? ? ? ?在什么位置就是什么的進(jìn)程號(hào)
4.? ?.is_alive()? ? ?判斷子進(jìn)程是否還活著
5.? ? .terminate()? ? ? ?給操作系統(tǒng)發(fā)出結(jié)束進(jìn)程的信號(hào)
二 。進(jìn)程之間是物理隔離的
?
三. 守護(hù)進(jìn)程
.daemon = True? ? 設(shè)置成為守護(hù)進(jìn)程
必須寫在 start 之前
跟著主進(jìn)程的結(jié)束而結(jié)束
?
?四。僵尸進(jìn)程和孤兒進(jìn)程
1.僵尸進(jìn)程(有害):一個(gè)進(jìn)程使用fork創(chuàng)建子進(jìn)程,如果子進(jìn)程退出,
? ? ? ? ? ?而父進(jìn)程并沒有調(diào)用wait或waitpid獲取子進(jìn)程的狀態(tài)信息,
? ? ? ? ? ?那么子進(jìn)程的進(jìn)程描述符仍然保存在系統(tǒng)中。這種進(jìn)程稱之為僵死進(jìn)程
2.孤兒進(jìn)程(無害):一個(gè)父進(jìn)程退出,而它的一個(gè)或多個(gè)子進(jìn)程還在運(yùn)行,
? ?那么那些子進(jìn)程將成為孤兒進(jìn)程。孤兒進(jìn)程將被init進(jìn)程(進(jìn)程號(hào)為1)所收養(yǎng),
? ?并由init進(jìn)程對(duì)它們完成狀態(tài)收集工作
五.進(jìn)程鎖/互斥鎖/同步鎖? ? 鎖名 = Lock()
1.? ? 鎖名.acquire()
鎖住部分(串行)
鎖名.release()
2.? ? with? 鎖名
鎖住部分
搶票實(shí)例:
?
?六.數(shù)據(jù)共享? ? Manager
七.進(jìn)程隊(duì)列 (先進(jìn)先出)? ? 隊(duì)列名 = Queue (隊(duì)列長(zhǎng)度)
1.? ?.put ()? ?放值
2.? ?.get()? ? ?取值
3.? ?防止阻塞? ?(try ...except)
超出時(shí)? ? .put_nowait()
取空時(shí)? ? .get_nowait()
4.? .qsize()? ?當(dāng)前隊(duì)列有多少數(shù)據(jù)
5.? ?.full()? ? ?是否滿了? ?(Ture/False) 不可靠
6.? ?.empty()? ? ?是否空了? ?(Ture/False) 不可靠
?
?生產(chǎn)者消費(fèi)者模型:
?
八.? Joinablequeue模型? ? 隊(duì)列有返回
隊(duì)列名 = Joinablequeue(隊(duì)列長(zhǎng)度)
隊(duì)列名.task_done()? ? #給隊(duì)列發(fā)送一個(gè)取出的這個(gè)任務(wù)已經(jīng)處理完畢的信號(hào)
隊(duì)列名.join() #就等著task_done()信號(hào)的數(shù)量,
和我put進(jìn)去的數(shù)量相同時(shí),才繼續(xù)執(zhí)行
生產(chǎn)者消費(fèi)者模型:
?
轉(zhuǎn)載于:https://www.cnblogs.com/lw1095950124/p/10267512.html
總結(jié)
以上是生活随笔為你收集整理的day 31 进程的其他方法 进程锁 进程队列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 环球黑卡和骑士卡有啥不同
- 下一篇: Java通过Pattern类使用正则表达