Java synchronized之“可重入锁”
来源:互联网 发布:淘宝微店是什么 编辑:程序博客网 时间:2024/05/17 09:19
概念
可重入锁:自己可以再次获取自己的内部的锁。比如有线程A获得了某对象的锁,此时这个时候锁还没有释放,当其再次想获取这个对象的锁的时候还是可以获取的,如果不可锁重入的话,就会造成死锁。
可重入锁也支持在父子类继承的环境中。
实例
package com.test.sync;public class Main { public int i = 10; synchronized public void operateMainMethod(){ try { i --; System.out.println("main print i = "+ i); Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }}
package com.test.sync;public class Sub extends Main{ synchronized public void operateISubMethod(){ try { while(i>0){ i --; System.out.println("sub print i="+i); Thread.sleep(100); this.operateMainMethod(); } } catch (InterruptedException e) { e.printStackTrace(); } }}
package com.test.sync;public class MyThread extends Thread{ @Override public void run() { Sub sub = new Sub(); sub.operateISubMethod(); }}
package com.test.sync;public class Test { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); }}
执行结果如下:
sub print i=9main print i = 8sub print i=7main print i = 6sub print i=5main print i = 4sub print i=3main print i = 2sub print i=1main print i = 0
这说明,子类继承父类时,子类完全可以通过可重入锁调用父类的同步方法。
1 0
- Java synchronized之“可重入锁”
- Java多线程之synchronized
- Java多线程之synchronized
- Java同步之synchronized
- Java同步之synchronized
- JAVA之synchronized认识
- Java之synchronized加鎖範圍
- Java之Synchronized
- java多线程之synchronized
- java之关键字synchronized
- java并发之synchronized
- java之synchronized
- Java同步之synchronized
- Java之synchronized
- Java关键字之synchronized
- java并发之synchronized
- java多线程之synchronized
- Java关键字之synchronized
- iOS手机摄像头测心率
- NEFU OJ29 苍之涛-求和
- 栈和队列
- 【OpenCV 教程】
- android蓝牙和串口模块的通信
- Java synchronized之“可重入锁”
- 依赖注入神器:Dagger2详解系列
- 点击按钮变色
- SpringMVC+Ueditor 整合
- java子类如何调用父类变量和方法
- Myabtis的CRUD操作
- Druid数据库连接池及内置监控的配置和使用
- Android布局(1)--线性布局(LinerLayout)
- Hadoop运行任务时一直卡在: INFO mapreduce.Job: Running job