- 注意事项
- 得写在循环的里面不然永远都是一个循环
- synchronized关键词加方法上()同步锁互斥锁非显示锁不公平锁 独占锁
- synchronized(Object对象取名lock){包裹代码}同步代码块同步锁互斥锁非显示锁不公平锁 独占锁
- reetranlock()可重入锁显示锁
- 具有线程独占性同一时刻只能有一个线程占有该同步锁锁的是方法
- 缺点执行效率可能低下
- 判断如果没有共享变量的操作下不需要用
- 所有线程执行抢锁
- 抢到的线程执行原子性方法
- 执行完方法释放锁
- 同一个线程可以多次获取该锁
- tryLockNanos()以纳秒为单位加锁
- new对象调用lock方法
- 关锁用unlock方法
![0](/i/l/?n=23&i=blog/3259829/202308/3259829-20230820173057923-1261028440.png)