1. 同步方法:使得多个线程不会同时执行该方法。
2. 同步代码块:使得多个线程不会同时执行代码块中的代码。
3. 同步静态方法:使得多个线程不会同时执行该静态方法。
4. 同步对象:实现更细粒度的同步,可以锁定某个对象的方法或代码块。
同步锁的作用:
1. 线程互斥:同一时刻只允许一个线程执行同步方法或同步代码块。
2. 避免线程干扰:一个线程正在操作对象,其他线程无法同时更改对象状态,保证数据的一致性。
3. 实现线程通信和等待:通过使用wait()、notify()实现等待/通知机制。