7 16 程序 訊號量

2022-07-29 07:27:08 字數 1796 閱讀 2375

01.複習內容

子程序裡面不能用 input  明天認真看 ,天熱有點浮躁!

1

#!/usr/bin/env python2#

!--*--coding:utf-8 --*--3#

!@time :2018/7/16 18:464#

!@author truenewbee56

"""7

我把之前的專案誤刪了,重新建個專案,

8還好以前部分**用sublime編寫的還有存檔

9"""10#

多程序**

1112

#from multiprocessing import process13#

方法14

#程序物件.start() 開啟乙個子程序15#

程序物件.join() 感知乙個子程序的結束16#

程序物件.terminate() 結束乙個子程序17#

程序物件.is_alive() 檢視某個子程序是否還在執行18#

屬性19

#程序物件.name 程序名20#

程序物件.pid 程序號21#

程序物件.daemob 值為true的時候,表現新的子程序是乙個守護程序22#

守護程序 隨著主程序**的執行結束而結束23#

一定在start之前設定

2425

#from multiprocessing import lock

2627

#l = lock()28#

l.acquire() #拿鑰匙29#

會造成資料不安全的操作30#

l.release() #換鑰匙

# 訊號量   pep8的標準還得適應,,真難

1

#!/usr/bin/env python2#

!--*--coding:utf-8 --*--3#

!@time :2018/7/16 19:014#

!@author truenewbee56

7#多程序中的元件8#

一套資源 同一時間 只能被n個人訪問9#

某一段** 同一時間 只能被n個程序執行

10import

time

11import

random

12from multiprocessing import

process

13from multiprocessing import

semaphore

1415

16def

ktv(arg, sem1):

17 sem1.acquire() #

獲取鑰匙

18"""

模擬唱歌

"""19

print("

%s走進ktv

"%arg)

20 time.sleep(random.randint(1, 5))

21print("

%s走出ktv

"%arg)

22sem.release()

2324

25if

__name__ == '

__main__':

26 sem = semaphore(4)

27for i in range(20):

28 p = process(target=ktv, args=(i, sem))

29 p.start()

linux 程序 訊號量

1.概述 該demo主要實現linux下程序之間訊號量的使用,相關介面介紹可以參考 2.測試 程序程式設計demo 訊號量 ipc相關的命令 ipcs ipcrm 釋放ipc 檢視程序屬性 ulimit a include include include include include includ...

python 程序訊號量

1 概念 訊號量和鎖相似,鎖同一時間只允許乙個物件 程序 通過,訊號量同一時間允許多個物件 程序 通過 2 應用場景 多執行緒,並規定數量 3 格式 匯入訊號量模組 例項化訊號量物件,可以規定訊號量的個數 傳遞物件 拿到一把鑰匙 釋放一把鑰匙 4 過程 獲得鑰匙,當鑰匙串沒鑰匙時,其它程序要在外面等...

Linux程序通訊 訊號量

主要用於程序對共享資源的互斥訪問。為了取得對乙個共享資源,程序測試訊號量的值,如果為正,表示還有資源可以訪問,該程序對訊號量加減一。如果為0表示沒有資源可以用,該程序應當休眠等待訊號量的值再次為正。linux中的訊號量使用起來是比較麻煩的。在這裡,訊號量是以集合形式存在的,建立時要給出訊號量的數目,...