临界区最简单的实现?
在我的一个 C++ 方法中,我必须以这样一种方式执行此操作:在给定时间只有一个线程访问这段代码。
void SomeMethod()
{
//critical section starts
someValue++;
someVariable = someValue
//critical section ends
}
谁能指导我什么是最简单且最好是最小(代码明智)的可能方法来实现这一目标?我不想使用 Boost Library
并且我不想为了实现这个目的而把我的代码搞得一团糟。我正在寻找一个标准的 C++ 解决方案,而不是仅适用于 Windows 的解决方案。
In one of my C++ methods I have to do this in such a way that only one thread access this piece of code at a given time.
void SomeMethod()
{
//critical section starts
someValue++;
someVariable = someValue
//critical section ends
}
Can anyone guide me what would be the most simplest and preferably smallest(code wise) possible way to achieve this? I don't want to use Boost Library
and I don't want to make a mess in my code just to achieve this. I am looking for a standard C++ solution not something that only works in Windows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您不想使用 Boost...您可能对 Dekker 的感兴趣, 彼得森的和Lamport 的算法。但我不太确定他们的实际实施是否会顺利进行。
If you don't want to use Boost... You might be interested in Dekker's, Peterson's and Lamport's algorithms. But I am not pretty sure that their practical implementation will work fine.