Java 线程八锁经典案例

 

phone 的sendEmail方法和sendSMS方法均为同步方法,问两者谁先执行

 

第二锁,新增一个sleep方法,问谁先执行

Java 线程八锁经典案例

第三锁,在类中新增加一个sayHello方法,看看谁先执行

第四锁,创建两个对象,分别执行,问谁先执行

第五锁,一个对象,两个方法均设为静态同步

第六锁,两个对象,两个方法均设为静态同步

Java 线程八锁经典案例

注意,普通同步方法锁住的是整个类,当一个普通同步方法被执行时,其他同步方法不能执行。

静态锁锁住整个对象,所以即使创建两个对象实例,仍然被同步

静态同步方法和普通同步方法之间相当于两把不同的锁,不影响。

 

两个线程轮流操作共享变量
Java 线程八锁经典案例

 

Java 线程八锁经典案例

判断,干活,通知三板斧

Java 线程八锁经典案例

虚假唤醒机制

多线程wait判断要用while,不能用if

 

Java 线程八锁经典案例

Java 线程八锁经典案例

主函数

资源类代码,使用锁和三个Condition对象实现精确打击

Java 线程八锁经典案例

Java 线程八锁经典案例

 

相关文章:

猜你喜欢
相关资源
相似解决方案