01-多线程
java thread
synchronized
-
类锁
- 修饰static函数和synchronized(ClassName.class)都是获取类锁
-
对象锁
- 修饰成员函数和synchronized(this|object)都是对象锁
- 其中修饰成员函数和synchronized(this)获取的都是当前类对象的锁
-
优点
- 简单,易用
- 开销少
-
缺点
- 可重入性差
- 大量使用可能导致性能下降
-
推荐用法
- 单例模式使用
- 用于计数器的自增或类似场景
Object.wait, Object.notify, Object.notifyAll
函数作用顾名思义
wait: 先释放对象锁,等待notify/notifyAll后释放
也就是说,可以基于他们实现条件变量, pv操作