synchronized
-
使用背景:
在JAVA高并发的业务场景中,为保证多个线程一次只能有一个线程访问某个方法或者某个代码块的数据,JAVA提供了synchronized的机制来实现。 -
使用方法:
- 锁定代码块:
- 锁定当前对象
- 锁定当前类
- 锁定代码块:
-
释放锁
- wait and notify(notifyall):
tips:
wait and notify必须在synchronized里面使用,否则会抛出java.lang.IllegalMonitorStateException -
死锁问题