2012-10-29 22 views
1

默認情況下,CRITICAL_SECTION對象是遞歸的。這種行爲可以像pthread mutex一樣配置來啓用或禁用遞歸線程訪問嗎?可以將Windows CRITICAL_SECTION對象配置爲拒絕遞歸訪問?

澄清迴應評論:我特指Windows CRITICAL_SECTION對象,而不是Windows互斥鎖。

+0

通過遞歸是否意味着它有一個計數器(如智能指針中的引用計數器)? – sashoalm

+4

看看這個:http://stackoverflow.com/questions/1988324/how-to-alter-the-recursive-locking-behaviour-of-windows-mutex –

+0

@AlexFarber,互斥是一個不同的東西關鍵部分。 –

回答

5

不,它不能。有文檔的API不以任何方式提及這一點。 Windows臨界區總是接受遞歸訪問。

3

臨界區總是允許在線程內遞歸。互斥體也是如此。這是設計,不能改變。

另一方面,信號可以防止線程內的遞歸。有關更多詳細信息,請參閱MSDN documentation