美文网首页
Java006 Synchronization and data

Java006 Synchronization and data

作者: 攻城狮托马斯 | 来源:发表于2020-04-11 20:43 被阅读0次

Synchronization 翻译成"同步"其实是一个不合理的解释, 因为只能保证运行了操作,但不能保证操作的顺序. 

在Java中,有多种方法,比如, 同步锁, concurrent data structures, wait/notify(condition synchronization) 和 volatile. (方法会持续更进)

当两个或两个以上operation没有properly synchronized(处于并发状态中), 并且至少有一个的操作时写时,data race就会发生,这时候导致的错误也可以算作是bug, 除了compile error和logic eroor之外的bug。


Java中Synchronized的语句.

public synchronized void increase() 

public void increase() {

  synchronize(this) {

    value--;

  }

}

类似,保证这一段代码只能被一个线程同时执行。
在Java中, synchronize method = synchornize(this) object

synchronize static method = synchronize (Counter.class), 把一整个class锁住,就和上文锁住代码段是一样的。

相关文章

网友评论

      本文标题:Java006 Synchronization and data

      本文链接:https://www.haomeiwen.com/subject/pziemhtx.html