java并发编程学习之内置锁的可重入性
2015-11-25 17:53
513 查看
内置锁的可重入性:
可重入性解释,《java并发编程实战》中有如下解释:如果某个线程试图获得一个由它自己持有的锁,那么这个请求就会成功!
下面是代码验证:
打印结果:
——child print—-
——parent print—-
思考:没有发生死锁即证明了内置锁是可重入的。因为Parent和child中的print方法都是synchronized的,所以执行前都会获取thread3上的锁,如果不可重入在调用super.print()时,便发生了死锁。
可重入性解释,《java并发编程实战》中有如下解释:如果某个线程试图获得一个由它自己持有的锁,那么这个请求就会成功!
下面是代码验证:
public class Thread3 extends Parent{ public synchronized void print(){ System.out.println("------child print----"); super.print(); } public static void main(String[] args) { new Thread3().print(); } } class Parent{ public synchronized void print(){ System.out.println("------parent print----"); } }
打印结果:
——child print—-
——parent print—-
思考:没有发生死锁即证明了内置锁是可重入的。因为Parent和child中的print方法都是synchronized的,所以执行前都会获取thread3上的锁,如果不可重入在调用super.print()时,便发生了死锁。
相关文章推荐
- Java内功提升之定义方法
- 【Java EE (Struts2 + Spring + Hibernate)开发】:Spring(二)深入使用
- JVM调优总结 收集器选择-各个代比例
- SpringMvc下载文件
- java基础知识:ArrayList和LinkedList的区别
- Java-UrlRewrite中文api文档
- Java中的命令模式——Thread,ThreadPoolExecutor和Runnable
- Eclipse常用快捷键
- Myeclipse部署运行太慢解决方法
- java IO 操作
- java时间相减(转载)
- java 上传图片图片变红
- Spring+ibatis 应用实例
- 关于Eclipse上面web项目部署时端口被占用
- Java 泛型
- Java synchronized
- java实现单链表(一)
- Java多线程用法解析
- 递归方式实现斐波那契数列&汉诺塔(java)
- eclipse经常未响应解决办法