声明必须对Aquire()或release()进行原子调用。那是什么意思?
acquire() {
while (!available)
; /* busy wait */
available = false;;
}
do {
(acquire lock)
critical section
(release lock)
remainder section
} while (true);
release() {
available = true;
}
答案 0 :(得分:0)
atomic
操作意味着它将完全完成或根本没有完成。无法在 MIDDLE 中终止/终止/终止该操作。
原子操作主要用于多线程编程。这些操作用于保持关键部分/变量的正常运行,因为许多线程竞相执行。
Anthony Williams撰写的“ Concurrency in Action”是了解C ++中原子操作和并发的一个好地方