synchronized都知道他是同步锁,很多框架里面 都能看到
synchronized用法: 修饰方法或者 同步代码块 这两种
synchronized修饰方法的时候加的锁是当前这个类的对象锁,
synchronized(this){} 也是当前对象锁
static synchronized 是当前class文件的锁 (类的所有实例锁)
几个情况分析:
1.一个类里面有两个方法都是 synchronized 多线程调用他们
:lol: 他们是同一把锁,也就意味着不会被阻塞,A-B
2.一个类里面有1个方法都是 synchronized,一个是 static synchronized 多线程调用他们 :lol: :两把锁 会被阻塞。A-B-A-B
(有不对的地方 帮忙说明下,有补充的地方,一定要写下 学习学习)
synchronized用法: 修饰方法或者 同步代码块 这两种
synchronized修饰方法的时候加的锁是当前这个类的对象锁,
synchronized(this){} 也是当前对象锁
static synchronized 是当前class文件的锁 (类的所有实例锁)
几个情况分析:
1.一个类里面有两个方法都是 synchronized 多线程调用他们
:lol: 他们是同一把锁,也就意味着不会被阻塞,A-B
2.一个类里面有1个方法都是 synchronized,一个是 static synchronized 多线程调用他们 :lol: :两把锁 会被阻塞。A-B-A-B
(有不对的地方 帮忙说明下,有补充的地方,一定要写下 学习学习)