1. Synchronized 修饰静态方法或者 synchronized(xx.class) { }, 都是属于类锁, 对于当前类的所有对象, 同时只能有一个线程能够访问锁住的方法或者代码块,其他线程会被阻塞住。
2. Synchronized 修饰实例方法(即不是static修饰的方法),或者synchronized(this) { }, 都是属于对象锁,该锁只对当前实例生效,其他对象还是拥有属于自己的锁,换言之,当前对象对应的多个线程,只会有一个线程能够执行锁住的方法或者代码块,而其他对象的执行则是隔离的,竞争的是自己的锁。
本文详细解析了Java中synchronized关键字的使用,区分了类锁和对象锁的概念,阐述了它们如何控制线程访问共享资源,确保数据的一致性和线程安全性。

被折叠的 条评论
为什么被折叠?



