【发布时间】:2010-09-15 05:39:36
【问题描述】:
Asp.net 应用程序中每个进程/线程的最大互斥量是否有限制?
以防万一目标操作系统是:Windows XP Pro、服务器 2003/2008 和不久的将来的 Windows 7。 通常网站部署在 App Pool 中。
【问题讨论】:
Asp.net 应用程序中每个进程/线程的最大互斥量是否有限制?
以防万一目标操作系统是:Windows XP Pro、服务器 2003/2008 和不久的将来的 Windows 7。 通常网站部署在 App Pool 中。
【问题讨论】:
该限制与进程可以拥有的句柄数限制基本相同。这是一个相当大的数字:16,777,216。当然,真正的限制要低得多,这取决于你有多少可用的非分页池,这并没有那么大。
如果您担心限制,那么您的程序有问题。请记住,临界区通常会延迟任何内核对象的创建,这意味着如果争用很少,您可以拥有大量的内核对象。
【讨论】:
我要在这里冒险尝试一下,您可能(不一定)做错了什么。
Raymond Chen 说 best 但是,如果您担心互斥锁的最大数量,您可能会以太细的粒度保护您的资源。
当然会有一个最大数量,即使它是由可用内存而不是常数决定的。但是,我看不到任何有效的情况,在这种情况下您需要如此多的互斥体以至于您会达到限制。
我并不是说这不可能,因为我不知道您的应用程序的架构是什么。但如果没有更好的方法,我会感到非常惊讶。
如果您退后一步,告诉我们“我想要什么”而不是“我是怎么做到的”,我们可以提供更好的建议。
【讨论】: