我找不到明确的答案,所以这就是这个地方
Windows {EnterCriticalSection
的行为方式我可以在同一个线程中多次锁定它,我需要在确切的次数上解锁它以便它可以获得免费。
什么是Linux等价物? pthread互斥是否以相同的方式起作用?或者它是多个锁,单个解锁......
答案 0 :(得分:3)
使用boost :: recursive_mutex,您不必再考虑操作系统了
答案 1 :(得分:2)
您可以使用属性PTHREAD_MUTEX_RECURSIVE_NP在递归模式下使用pthread互斥锁。
本文描述了Linux等价物(参见“listing2。等效Linux代码”)
http://www.ibm.com/developerworks/linux/library/l-ipc2lin3/index.html
答案 2 :(得分:0)
为什么不使用ADONTEC的W2LPL库(http://adontec.com/windows-to-linux-port-library.htm),它几乎可以满足您的所有需求。
答案 3 :(得分:-1)
您可以使用互斥锁,请查看此http://en.wikipedia.org/wiki/Critical_section
请确保将其置于递归模式。
以下链接介绍了如何为pthreads执行此操作:http://www.ibm.com/developerworks/linux/library/l-ipc2lin3/index.html