Wha*_*rld 2 c++ java pthreads atomic
快问题?这条线在C++和Java中是原子的吗?
class foo {
  bool test() {
    // Is this line atomic?
    return a==1 ? 1 : 0;
  }
  int a;
}
如果有多个线程访问该行,我们最终可能首先检查a == 1,然后更新a,然后返回,对吗?
补充:我没有完成课程,当然,还有其他部分更新...
不,对于C++和Java.
在Java中,您需要以相同的方式创建方法synchronized并保护其他用途a.确保在所有情况下都在同一对象上进行同步.
在C++中,您需要使用std::mutex保护a,可能使用std::lock_guard以确保在函数结束时正确解锁互斥锁.
return a==1 ? 1 : 0;
是一种简单的写作方式
if(a == 1)
    return 1;
else
    return 0;
我没有看到任何更新的代码.但我想你可以搞清楚.
| 归档时间: | 
 | 
| 查看次数: | 780 次 | 
| 最近记录: |