功能:线程进入用 synchronized 声明的方法时就上锁,方法执行完自动解锁,锁的是当前
类的对象
调用 synchronized 声明的方法一定是排队运行的
当 A 线程 调用 object 对象的 synchronized 声明的 X 方法时
B 线程可以调用其他非 synchronized 声明的方法
B 线程不能调用其他 synchronized 声明的非 X 方法
synchronized 锁重入
锁重入的概念:自己可以重复获得自己的内部锁。即 synchronized 声明的方法,可以调用
本对象的其他 synchronized 方法。
锁重入支持继承的环境,即子类的 synchronized 方法也可以调用父类的 synchronized 方法。
synchronized 同步代码块
synchronized 关键字与 synchronized 代码块的区别
synchronized 声明的方法是将当前对象作为锁
synchronized 代码块是将任意对象作为锁
当两个线程访问同一个对象的 synchronized 代码块时,只有一个线程可以得到执行,另一
个线程只能等待当前线程执行完才能执行。
一半同步,一半异步
不在 synchronized 代码块中就是异步执行,在 synchronized 代码块中就是同步执行
评论0
最新资源