经典指数          
原因
2179
浏览数
0
收藏数
 

以下说法正确的是:
  • 在并行程度中,当两个并行的线程,在没有任何约束的情况下,访问一个共享变量或者共享对象的一个域,而且至少要有一个操作是写操作,就可能发生数据竞争错误。
  • 原语Compare-and-swap(CAS)是实现无锁数据结构的通用原语。
  • 获得内部锁的唯一途径是:进入这个内部锁保护的同步块或方法。
  • volatile变量具有synchronized的可见性特性,但是不具备原子特性。
  • 减小竞争发生可能性的有效方式是尽可能缩短把持锁的时间

     举报   纠错  
 
切换
1 个答案
A: 来自Thinking in java:如果你正在写一个变量,它可能接下在将被另一个线程读取,或者正在读取上一个已经被另一个线程写过的变量,那么你必须应用同步,并且,读写线程都必须用相同的监视器锁同步。--由此可以想到,如果多个线程都只读数据,则不会造成竞争错误,因为不会出现读脏数据或者数据不同步问题。 B. 无锁化编程常用方式之一 C. 当线程企图访问临界资源时,先会查看该临界资源当前是否已被加锁,如果没有被加锁,则对该临界资源加锁,并进入该同步块或方法,加锁后,其他线程也就无法访问该临界资源了。所以判定获取了一个内部锁的标准为:进入该同步区域 D. 保证可见性,调用volatile变量时,使用前都会刷新该变量,保证变量的值为最新的。不保证互斥性,所以不具备原子特性 E. 把持锁的时间短了,等待锁的时间也就短了,竞争可能性变小
 
切换
撰写答案
扫描后移动端查看本题