【发布时间】:2016-12-03 07:32:44
【问题描述】:
这是 A. Williams C++ Concurrency in Action 一书,带有危险指针的无锁堆栈主题。假设我对它有所了解,除了两行之外,它们在这里(source 这里):
// code before
if (old_head) {
res.swap(old_head->data);
// code after
问题是:另一个线程可以在取消引用(old_head->data)之前删除(修改等)“old_head”指针吗?逻辑上说没有因为整个威廉姆斯的代码是错误的,但我怀疑它是否是一种原子操作。你怎么看?
【问题讨论】:
标签: c++ multithreading atomic lock-free