对旧值进行基本检查的原子集

Tes*_*est 0 rust

有没有一种方法可以通过以下方式根据先前的值自动设置单元格?

共有三个操作,每个操作都根据当前值设置单元格并检索旧值。我已经根据旧值指出了它应该设置的内容old => new

操作1:

0 => 1
1 => 1
2 => 2
Run Code Online (Sandbox Code Playgroud)

操作2:

0 => 2
1 => 1
2 => 2
Run Code Online (Sandbox Code Playgroud)

操作3

always set to 0
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 5

前两个操作是仅将一个原始值更改为新值的示例,即比较和设置,可以在 Rust 原子中使用以下命令完成compare_exchange

\n
let _ = atomic.compare_exchange(0, 1, Ordering::\xe2\x80\xa6, Ordering::\xe2\x80\xa6);\n
Run Code Online (Sandbox Code Playgroud)\n
let _ = atomic.compare_exchange(0, 2, Ordering::\xe2\x80\xa6, Ordering::\xe2\x80\xa6);\n
Run Code Online (Sandbox Code Playgroud)\n

当然第三个只是store

\n