2011-08-06 54 views
0

在我的一個C++方法中,我必須這樣做,只有一個線程在給定的時間訪問這段代碼。關鍵節的最簡單的實現?

void SomeMethod() 
{ 
    //critical section starts 
    someValue++; 
    someVariable = someValue 
    //critical section ends 
} 

任何人都可以指導我什麼是最簡單,最好是最小(代碼明智的)可能的方式來實現這一目標?我不想使用Boost Library,我不想在我的代碼中弄亂一切以達到此目的。我正在尋找一種標準的C++解決方案,而不是僅適用於Windows的解決方案。

+1

對於線程本質而言,這不就是平臺特定嗎?我不認爲C++知道線程。 –

+1

您絕對*必須*擁有對併發編程的平臺支持。標準C++ 98/03 *沒有*。一個答案就是'pthreads'。或者使用C++ 0x,它具有它,你可以使用''。 –

+0

我正在寫一個代碼,它應該在多個平臺下運行:( –

回答

0

如果你不想使用Boost ...你可能會對Dekker'sPeterson'sLamport's算法感興趣。但我不確定他們的實際執行情況是否正常。

相關問題