python共享內存
Python共享內存

共享內存(Shared Memory)是最簡單的進程間通信方式,它允許多個進程訪問相同的內存,一個進程改變其中的數據后,其他的進程都可以看到數據的變化。
共享內存是進程間最快速的通信方式:
`進程共享同一塊內存空間。
`訪問共享內存和訪問私有內存一樣快。
`不需要系統調用和內核入口。
`不造成不必要的內存復制。
內核不對共享內存的訪問進行同步,因此程序員必須自己提供同步。
使用共享內存:
`某個進程分配內存段。
`使用這個內存段的進程要連接(attach)這個內存段。
`每個進程使用完共享內存段后,要分離(detach)這個內存段。
`在某個地方,必須有一個進程來銷毀這個內存段。
Linux的內存模型:
`每個進程的虛擬內存被分為頁(page)。
`每個進程維護自己的內存地址到虛擬內存頁之間的映射。
`實際的數據存在于進程的內存地址上。
`盡管每個進程有自己的地址空間,多個進程的映射還是可以指向相同的頁。
所有的共享內存段的大小,都是Linux內存頁大小的整數倍。
Linux的頁大小是4KB,不過程序員應該使用getpagesize函數來獲得這個值。
分配:shmget
`第一個參數是一個整型的鍵,用于指定要創建的段。無關的進程可以通過指定同一個鍵來訪問同一段共享內存。
`使用常量IPC_P
Python 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。