成功的路上总是离不开贵人的帮助,名师的指点和小人的刺激。

莫怕,过了桥,就翻篇了

上一页 1 2 3 4 5 6 7 8 ··· 12 下一页

2017年12月9日 #

2.2.14内置类与同步:测试1

摘要: 本实验测试是在内置类中有两个同步方法,但使用的却是不同的锁,打印结果也是异步的 由于持有不同的对象监视器,所以打印结果就是乱序的。 阅读全文

posted @ 2017-12-09 14:53 痞子陈2016 阅读(153) 评论(0) 推荐(0) 编辑

2.2.13内置类与静态内置类

摘要: 关键字synchronized的知识点还涉及内置类的使用。 内置类还有一种叫做静态内置类 阅读全文

posted @ 2017-12-09 14:43 痞子陈2016 阅读(242) 评论(0) 推荐(0) 编辑

2.2.12多线程的死锁

摘要: java线程死锁是一个经典的多线程问题,因为不同的线程都在等待根本不可能释放的锁,从而导致所有的任务无法继续完成,在多线程技术中,死锁是必须避免的,因为会造成线程的假死。 程序运行结果如上。 可以用jdk自带的工具来监测是否有死锁现象 监测出现死锁 死锁是程序设计的bug,在程序设计时就要避免双方互 阅读全文

posted @ 2017-12-09 13:56 痞子陈2016 阅读(166) 评论(0) 推荐(0) 编辑

2.2.11同步synchronized方法无限等待与解决

摘要: 同步方法容易造成死循环。 结果运行: 线程B永远得不到运行的机会,锁死了。 这时可以使用同步代码块来解决这样的问题 更改Service.java文件代码 运行结果不再出现同步等待的情况。 阅读全文

posted @ 2017-12-09 13:33 痞子陈2016 阅读(567) 评论(0) 推荐(0) 编辑

2017年12月8日 #

2.2.10数据类型String的常量池特性

摘要: 在JVM中具有String常量池缓存的功能 将synchronized(string)同步代码块和String联合使用,结果出现意外 测试 结果是无限循环的打印a 出现这种情况的原因是因为String的两个值都是AA,两个线程持有相同的锁。所以造成线程B不能执行,这就是String常量2池带来的问题 阅读全文

posted @ 2017-12-08 21:49 痞子陈2016 阅读(302) 评论(0) 推荐(0) 编辑

2.2.9静态同步synchronized方法与synchronized(class)代码块

摘要: 关键字synchronized还可以应用在static静态方法上,这样写那是对当前的*.java文件对应的class类进行持锁, 测试如下 程序运行结果: 同步的效果,和将synchronized关键字加到非static方法上使用的效果一致,但还是存在本质上的区别,synchronized加到sta 阅读全文

posted @ 2017-12-08 21:35 痞子陈2016 阅读(249) 评论(0) 推荐(0) 编辑

2.2.8细化验证3个结论

摘要: synchronized(非this对象x)格式的写法是将对象本身作为对象监视器,这样就可以得出以下3个结论。 1)当多个对象同时执行synchronized(x){}同步代码块是呈同步效果 2)当其他线程执行x对象中的synchronized同步方法呈现同步效果 3)当其他线程执行x对象方法里面的 阅读全文

posted @ 2017-12-08 20:54 痞子陈2016 阅读(124) 评论(0) 推荐(0) 编辑

2017年12月7日 #

2.2.7将任意对象作为对象监视器

摘要: 多个线程调用同一个对象中的不同名称的synchronized同步方法或者synchronized(this)同步代码块时,调用的效果就是按照顺序执行,也就是同步,阻塞的。 这说明synchronized同步方法和synchronized(this)同步代码块分别有两种作用。 a. synchroni 阅读全文

posted @ 2017-12-07 20:03 痞子陈2016 阅读(212) 评论(0) 推荐(0) 编辑

2.2.6验证同步代码块时锁定当前对象的

摘要: 和synchronized方法一样,synchronized(this)代码块也是锁定当前对象的。 上面结果执行是异步执行的,下面更改othermethod 阅读全文

posted @ 2017-12-07 18:40 痞子陈2016 阅读(972) 评论(0) 推荐(0) 编辑

2017年12月6日 #

2.2.5synchronized代码间的同步性

摘要: 结果分析:当一个线程访问object的一个同步代码块时,其他线程对同一个object的所有其他的同步代码块将被阻塞,这说明同步代码块使用的是对象监视 阅读全文

posted @ 2017-12-06 22:12 痞子陈2016 阅读(172) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 12 下一页

导航