我将一个Windows应用程序移植到Linux,并且我有一个同步问题。Linux进程间可重入信号量
在Windows中,我使用系统级名为mutex来同步对共享内存块的访问。
我该如何在Linux中进行模拟?我用semget创建了一个SystemV信号量。问题是,它不是可重入的,如果我已经拥有它,它将会阻塞,不像在Windows上。我可以为它添加一个引用计数,但是接下来我需要同步访问,这意味着另一个(仅限当前进程)互斥量。
是否有一个类提供了一个可重入的进程间锁定(可能在升压)?
顺便说一句,使用文件锁定是不可接受的,因为它可能会太慢(我需要两个进程之间的超低延迟通信)。
引用计数大概是每个线程,所以如果你使用原子操作来递增/递减它,你不需要同步对它的访问。 – atomice 2009-11-17 14:13:35