2010-09-15 81 views

回答

1

我打算在這裏出去走走,冒險出現這種可能性,你可能(不一定)做錯了什麼。

Raymond Chen表示它best但是,如果您擔心互斥鎖的最大數量,您可能會保護您的資源的粒度太細。

當然有是一個最大數量,即使它是由可用內存而不是一個常數。但是,我看不到任何有效的情況,您需要這麼多的互斥鎖才能達到極限。

我不是說這不可能,因爲我不知道你的應用程序的體系結構是什麼。但是如果沒有更好的方法去做,我會感到非常驚訝。

也許如果你退後一步並告訴我們「我想要什麼」而不是「我是怎麼做到的」,我們可以提供更好的建議。

+0

Web場和1000個用戶訪問相同的資源(配置文件) – 2010-09-23 05:04:52

1

該限制基本上與進程可以擁有的句柄數限制相同。這是一個相當大的數字:16,777,216。當然,真正的限制要低得多,並且取決於你有多少可用的非分頁池,哪個不是那麼大。

如果您擔心限制,您的程序出現問題。請記住,關鍵部分通常會延遲創建任何內核對象,這意味着如果爭用較少,則可以擁有大量內核對象。

+0

如果您看到發佈的鏈接,它提到XP中的互斥量最多爲20個。該網站是一個可訪問5個配置文件的Web場。 – 2010-09-23 05:03:54

+0

呃,沒有。有一種簡單的方法來反駁您的說法:打開Process Explorer並查看幾個不同進程的句柄(包括未命名的句柄)。 Mutant對象的數量將會加起來,遠遠超過20個。 – wj32 2010-09-23 06:39:00