synchronized的作用

synchronized是java中的一个关键字,也就是说是Java语言内置的特性。

如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:

1、获取锁的线程执行完了该代码块,然后线程释放对锁的占有;

2、线程执行发生异常,此时JVM会让线程自动释放锁。

不足

如果这个获取锁的线程由于要等待IO或者其他原因(比如调用sleep方法)被阻塞了,但是又没有释放锁,其他线程便只能干巴巴地等待,试想一下,这多么影响程序执行效率。

总结

synchronized是Java语言的关键字,因此是内置特性采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会自动让线程释放对锁的占用

原文参考:https://www.cnblogs.com/dolphin0520/p/3923167.html

相关文章:

  • 2021-05-31
  • 2022-02-06
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
  • 2021-09-25
  • 2022-01-11
猜你喜欢
  • 2022-02-14
  • 2022-12-23
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案