在java中synchronized关键字可以作为方法的修饰符或者在代码块中使用,例如:

public synchronized void doSomething()

synchronized(semaphore) {
...
}

作为方法修饰符的优点有:

  1. 同步策略是显式的,并且可以写到api文档中
  2. 方法比较基础因而降低了死锁的机会,尽管依然可以比较容易的制造一个

缺点就是:

  1. 方法同步性能不高
  2. 通常开发者在使用synchronized关键字的时候没有清晰全面的锁策略,这样就会导致有很多的同步内容

在同步代码块中使用的优点有:

  1. 可以很好、很容易的控制需要锁定的内容
  2. 比方法同步有更好的性能

缺点有:

  1. 很容易形成嵌套的同步代码块,因而也容易造成死锁
  2. 同步策略不能被文档化,需要查看方法代码才能知道

英文原文:http://codemonkeyism.com/java-interview-question-synchronized/

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2021-09-18
  • 2022-02-16
  • 2022-01-24
  • 2021-11-12
  • 2021-09-29
猜你喜欢
  • 2021-06-06
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2021-08-17
  • 2021-11-12
  • 2021-07-02
相关资源
相似解决方案