临界截面的最简单可能实现? 我的C++方法中,我必须这样做,这样在给定的时间内只有一个线程访问这段代码。 void SomeMethod() { //critical section starts someValue++; someVariable = someValue //critical section ends }
有谁能告诉我实现这一点的最简单、最好是最小的代码方式是什么?我不想使用Boost库,也不想为了实现这一点而把代码弄得一团糟。我正在寻找一个标准的C++解决方案,而不是只在Windows中工作的。 < p>如果你不想使用Boost…你可能会感兴趣的,和算法。但我不太确定它们的实际实现是否能很好地工作。从线程的性质来看,这不是特定于平台吗?我认为C++还不知道线程,你必须有支持并行编程的平台。标准C++98/03没有它。一个答案是pthreads。或者使用C++0x,它确实有并且你可以使用。凯瑞克:别忘了boost@Haris的一种方法是使用适当的ifdef编写一个类,该类将公开相同的接口,但在不同的平台上正确/不同地在内部工作。我用一个简单的线程库实现了这一点,至少对我来说是可以接受的。你已经依赖于某个平台无关的线程库了,这就是为什么你想要一个互斥体?使用该库的互斥体,您已经具有依赖关系。临界截面的最简单可能实现? 我的C++方法中,我必须这样做,这样在给定的时间内只有一个线程访问这段代码。 void SomeMethod() { //critical section starts someValue++; someVariable = someValue //critical section ends },c++,critical-section,C++,Critical Section,有谁能告诉我实现这一点的最简单、最好是最小的代码方式是什么?我不想使用Boost库,也不想为了实现这一点而把代码弄得一团糟。我正在寻找一个标准的C++解决方案,而不是只在Windows中工作的。 < p>如果你不想使用Boost…你可能会感兴趣的,和算法。但我不太确定它们的实际实现是否能很好地工作。从线程的性质来看,这不是特定于平台吗?我认为C++还不知道线程,你必须有支持并行编程的平台。标准C++98/03没有它。一个答案是pthreads。或者使用C++0x,它确实有并且你可以使用。凯瑞克: