2011-01-19 63 views
1

我有一个可以在多个线程上访问的类。我可以创建多少个关键部分有任何限制?

,以确保我没有同时访问,我将使用CCriticalSection

我在想,如果我可以只创建一个CCriticalSectionfor对象的任何副本(我想我可以有大约100-1000这个对象在程序中),或者最好创建一个静态成员CCriticalSection并将其用于所有对象?

回答

1

此前XP/Server 2003中,你可能会耗尽内核对象为CRITICAL_SECTION S(专门用于仲裁时,有上CRITICAL_SECTION争事件)对于XP及以后你有界,你是对很多事情,你的虚拟地址空间。

0

当然有一个限制,但1000是完全正常的。 但在你的情况下,我相信静态会员更好。

创建额外的对象是你应该从性能预期中做的最后一件事。

0

Windows有上段的数量没有限制,你可以创造出比可用内存(由于内部调试的联系等,其消耗超过sizeof(CCriticalSection)sizeof(CriticalSection)

0

如果你的范围是只为“信号”为什么不使用InterlockedExchange和Interlock ...家庭功能?

相关问题