Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
临界截面的最简单可能实现? 我的C++方法中,我必须这样做,这样在给定的时间内只有一个线程访问这段代码。 void SomeMethod() { //critical section starts someValue++; someVariable = someValue //critical section ends }_C++_Critical Section - Fatal编程技术网

临界截面的最简单可能实现? 我的C++方法中,我必须这样做,这样在给定的时间内只有一个线程访问这段代码。 void SomeMethod() { //critical section starts someValue++; someVariable = someValue //critical section ends }

临界截面的最简单可能实现? 我的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,它确实有并且你可以使用。凯瑞克:

有谁能告诉我实现这一点的最简单、最好是最小的代码方式是什么?我不想使用Boost库,也不想为了实现这一点而把代码弄得一团糟。我正在寻找一个标准的C++解决方案,而不是只在Windows中工作的。

< p>如果你不想使用Boost…你可能会感兴趣的,和算法。但我不太确定它们的实际实现是否能很好地工作。

从线程的性质来看,这不是特定于平台吗?我认为C++还不知道线程,你必须有支持并行编程的平台。标准C++98/03没有它。一个答案是pthreads。或者使用C++0x,它确实有并且你可以使用。凯瑞克:别忘了boost@Haris的一种方法是使用适当的ifdef编写一个类,该类将公开相同的接口,但在不同的平台上正确/不同地在内部工作。我用一个简单的线程库实现了这一点,至少对我来说是可以接受的。你已经依赖于某个平台无关的线程库了,这就是为什么你想要一个互斥体?使用该库的互斥体,您已经具有依赖关系。