2011-01-19 51 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如果你想知道它是如何工作的。