相关疑难解决方法(0)

如何在C中使用原子变量?

我需要在 C 中使用一个原子变量,因为这个变量是跨不同线程访问的。不想要竞争条件。

我的代码在 CentOS 上运行。我有哪些选择?

c linux atomic

11
推荐指数
2
解决办法
3万
查看次数

使用Delphi 10.2等效的InterlockedExchangeAdd for Linux

Delphi 10.2(支持Linux)具有跨平台功能AtomicExchange,相当于Windows InterlocekdEchange.到现在为止还挺好...

我必须使用没有AtomicExchangeAdd等效的InterlockedExchangeAdd来移植Win32代码.

我的问题是:在为Linux编译时,我可以使用什么来替换InterlockedExchangeAdd?

linux delphi atomicity

11
推荐指数
2
解决办法
410
查看次数

如何在C中进行原子增量和获取?

我正在寻找一种原子地增加短路的方法,然后返回该值.我需要在内核模式和用户模式下执行此操作,因此它在C语言下,在Linux下,在Intel 32位架构上.不幸的是,由于速度要求,互斥锁不是一个好的选择.

有没有其他方法可以做到这一点?在这一点上,似乎唯一可用的选项是内联一些程序集.如果是这样的话,有人能指出我适当的指示吗?

c linux x86 atomic

9
推荐指数
2
解决办法
2万
查看次数

我可以将以下代码锁定为free/atomic吗?

int val = memLoc[index++];

还是更好

int val = memLoc[index++ & 0xFF];

尝试从共享环缓冲区执行线程安全读取,其中每个调用获得下一个值 - 并且我希望它可以锁定,如果它发生了TON那么可能.没有Boost/C++ 11允许:(

c++ multithreading atomic

5
推荐指数
1
解决办法
666
查看次数

标签 统计

atomic ×3

linux ×3

c ×2

atomicity ×1

c++ ×1

delphi ×1

multithreading ×1

x86 ×1