簡體   English   中英

Mach信號量是否在進程之間的共享內存中工作?

[英]Does Mach semaphore work in shared memory between processes?

我有興趣使用信號量,使用semaphore_create(task, sem, policy, value)mach/semaphore.h ,在共享內存中同步Mac OS中的兩個進程。

我知道,在Linux上使用sem_init(sem, pshared, value)pshared必須是在這種情況下不為零,但我無法找到和Mac(其中信息sem_init沒有實現),我真的不希望使用命名信號量,因為我需要創建很多信號量。

我嘗試了一個最小的例子它似乎不起作用,所以我想知道我做錯了什么或它只是不起作用。 我也對其他進程間鎖定替代方案持開放態度。

OSX不支持匿名信號量。 實現函數調用以獲得posix合規性,但是如果檢查返回代碼,它們實際上會出現未實現的錯誤。 我在這里寫了一篇文章,詳細介紹了OSX和未命名的信號量,以及一個建議的解決方案: Unnamed-semaphores-and-pososx

這是關於semaphore_create和朋友的文檔: https//developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KernelProgramming/synchronization/synchronization.html

我沒有Mac,所以我無法測試任何東西,但我沒有看到任何無法命名的信號量的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM