程序間的通訊 共享記憶體

2021-08-20 21:25:42 字數 1071 閱讀 8513

在記憶體中開闢一段記憶體空間儲存資料,每次儲存的內容都會覆蓋上次的內容。由於沒有對記憶體進行格式化的修飾所以訪問速度塊效率高。

from multiprocessing import value,array

from multiprocessing import  value,process

import time

import random #獲取隨機值

defdeposite

(money):

for i in range(100):

time.sleep(0.03)

money.value +=random.randint(1,200)

defwithdraw

(money):

for i in range(100):

time.sleep(0.02)

money.value -=random.randint(1,150)

money=value('i',2000) #生成共享記憶體,放入數字2000,初始化money

d=process(target=deposite,args=(money,))

w = process(target=withdraw, args=(money,))

d.start()

w.start()

d.join()

w.join()

print(money.value)

ob j=value(copy,obj)
功能:開闢共享記憶體

引數:

ctype 要轉變的c的型別

obj 要寫入共享記憶體的初始值。

obj.value

#屬性為獲取共享記憶體中的值

obj=array(type,obj)
功能:開闢乙個共享記憶體空間

引數:要裝的是c語言的型別,obj放入共享記憶體中的資料,是乙個列表,列表中的資料為相同型別資料。如果obj傳入乙個正數,則表示在共享記憶體中開闢乙個多大的空間,空間中可以存放的數值

程序間通訊 共享記憶體

下面是自己寫的乙個簡單的共享記憶體的程序間通訊的例子。共享記憶體是用於程序間大量資料共享的一種方法。include include include include include include int main if buf1 shmat shmid,0,0 void 1 strcpy buf1,...

程序間通訊 共享記憶體

共享記憶體是被多個程序共享的一部分物理記憶體。共享記憶體是程序間共享資料的一種最快的方式,乙個程序向共享記憶體區域寫入資料,共享這個記憶體區域的所有程序就可以立刻看到其中的內容。共享記憶體實現分兩個步驟 建立共享記憶體,使用shmget函式 對映共享記憶體,使用shmat函式 共享記憶體是一種最為高...

程序間通訊 共享記憶體

共享記憶體允許兩個或更多程序共享一塊給定的儲存區,因為資料不需要在不同程序之間訪問,這是最快的一種ipc 傳輸資訊量很大,通過記憶體空間對映程序空間實現,若伺服器程序正在將資料放入共享儲存區,則在它做完這一操作之前,客戶程序不應取這些資料,通常訊號量用來實現對共享儲存訪問的同步。核心為每個共享儲存段...