2011-01-19 50 views
2

環境:Windows XP的C++,VS 2008,MFC,應用程序。 我必須訪問&修改2個線程中的樹結構。我的想法是用一個CCriticalSection來保護每個節點,每次節點內部數據(而不是子節點)被訪問時都會鎖定它。 我期待着大量的節點(2-300000)。大量關鍵部分

非常大量的關鍵部分是否會成爲問題?

我聽說Windows有一個問題,有大量打開的句柄, 這就是爲什麼我問這個問題。

+0

我確定有人今天問了這個問題 - 雖然找不到它...... – 2011-01-19 15:10:51

+0

與此問題類似:[有多少關鍵部分我可以創建?](http:// stackoverflow.com/questions/4735719/there-is-any-limit-on-how-many-critical-section-i-can-create)。但是,這個問題還沒有「答案」。 – 2011-01-19 15:12:48

回答

3

與互斥鎖不同,關鍵部分不是內核對象,並且只要有兩個線程實際嘗試鎖定它就只需要一個操作系統句柄。 read this Matt Pietrek article如果你想知道它是如何工作的。