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