static synchronized和synchronized的区别
时间: 2023-12-07 18:35:05 浏览: 87
透彻理解Java中Synchronized(对象锁)和Static Synchronized(类锁)的区别
static synchronized和synchronized是两种不同的关键字,用于实现线程同步。它们之间的区别如下:
1. synchronized关键字:
- synchronized关键字用于修饰方法或代码块,用于实现对象级别的锁定。
- 当一个线程进入被synchronized修饰的方法或代码块时,它会获取该对象的锁定,并执行同步的代码。
- 在同一时间内,只有一个线程能够获取对象的锁定,其他线程需要等待锁定释放才能执行。
2. static synchronized关键字:
- static synchronized关键字用于修饰静态方法或静态代码块,用于实现类级别的锁定。
- 当一个线程进入被static synchronized修饰的方法或代码块时,它会获取该类的锁定,并执行同步的代码。
- 与synchronized不同的是,static synchronized锁定的是类对象而不是实例对象,因此所有实例对象共享同一个锁定。
阅读全文