Asp.net应用程序中每个进程/线程的最大互斥量是否有限制?
以防万一目标操作系统是:Windows XP专业版,服务器2003/2008和Windows 7在不久的将来。 通常该网站部署在应用程序池中。
我要在这里冒险,冒险说你可能 (不一定)做错了。
Raymond Chen说得最好,但是如果你担心互斥量最大的话,你可能会保护你的资源的粒度太细。
当然,即使它是由可用内存而不是一个常量来决定的, 也会有最大数目。 但是,我看不到任何有效的情况,你需要这么多的互斥,你会达到一个极限。
我不是说这是不可能的,因为我不知道你的应用程序的架构是什么。 但是,如果没有更好的办法,我会很惊讶。
也许如果你退后一步,告诉我们“我想要什么”,而不是“我怎么做”,我们可以提供更好的建议。
该限制基本上与进程可以拥有的句柄数限制相同。 这是一个很大的数字:16777216。 当然,真正的限制要低得多,取决于你有多少非页面缓冲池可用,这不是那么大。
如果你担心这个限制,你的程序出了问题。 请记住,关键部分通常会延迟创建任何内核对象,这意味着如果争用较少,则可以拥有大量内核对象。