2012-01-27 124 views

回答

0

如何在超時等待信號量?如果超時激發,請立即鎖定隊列並檢查計數。這隻會給出一個粗略的指導 - 生產者可以在超時和鎖定隊列之間排隊一個對象,但它可能使您能夠調試您的P-C隊列。

+0

你如何檢查win api信號量的計數?我找不到這樣的功能... 我不需要這個用於調試的目的,但我需要解決在reader-writers問題中的飢餓,我在我的程序中,所以我必須檢查是否有任何作者被阻止並等待... – 2012-01-27 15:11:26

+0

對不起,我的意思是隊列數。 IIRC,ReleaseSeamphore()可以返回以前的計數 - 可能會有用。你得到什麼樣的隊列有什麼問題?我沒有看到Windows信號量的任何問題,我用它們計數/阻止生產者 - 消費者隊列。 – 2012-01-27 18:14:43

+0

我沒有任何信號量問題,我只需要正確地同步讀者和作者,這樣就不會有任何飢餓......因此,當讀者請求閱讀時,他必須檢查是否存在正在寫作的作者,或者如果有一個作者在等待隊列中(在信號量上被阻塞),並且如果情況是這樣的話,閱讀器必須保持阻塞在另一個信號量上... – 2012-01-27 22:05:52