临界区最简单的实现?

发布于 2024-11-28 00:50:09 字数 352 浏览 0 评论 0原文

在我的一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等风也等你 2024-12-05 00:50:09

如果您不想使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文