gpt4 book ai didi

linux - 与使用 Delphi 10.2 的 Linux 的 InterlockedExchangeAdd 等效)

转载 作者:IT王子 更新时间:2023-10-28 23:57:53 24 4
gpt4 key购买 nike

Delphi 10.2(支持 Linux)有一个跨平台函数 AtomicExchange,相当于 Windows InterlokekdEchange。到目前为止一切顺利...

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

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

最佳答案

System.SysUtils.pas 中有此函数的隐藏实现:

function AtomicExchangeAdd(var Addend: Integer; Value: Integer): Integer;
begin
Result := AtomicIncrement(Addend, Value) - Value;
end;

它利用了 AtomicIncrement 返回 Addend 的新值,而 InterlockedExchangeAdd 返回旧值这一事实。减去 Value 给出了预期的结果,显然是线程安全的。

关于linux - 与使用 Delphi 10.2 的 Linux 的 InterlockedExchangeAdd 等效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43561668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com