07 2016 档案

摘要:上篇介绍了用synchronized修饰static方式来实现“Class 锁”,今天要介绍另一种实现方式,synchronized(class)代码块,写法不一样但是作用是一样的。下面我附上一段代码来看一下synchronized(class)代码块的基本用法,如下: 运行结果如下:synchro 阅读全文
posted @ 2016-07-12 16:18 陈家小桐桐 阅读(179) 评论(0) 推荐(0) 编辑
摘要:前面几章都是在说synchronized用于对象锁,无论是修饰方法也好修饰代码块也好,然而关键字synchronized还可以应用到static静态方法上,如果这样写,那就是对当前的*.java文件所对应的Class类进行加锁。那么接下来就来说说synchronized修饰static的最基本用法和 阅读全文
posted @ 2016-07-12 14:28 陈家小桐桐 阅读(162) 评论(0) 推荐(0) 编辑
摘要:在多线程访问同一个对象中的不同的synchronized方法或synchronized代码块的前提下,也就是“对象监控器”为同一个对象的时候,也就是synchronized的锁为同一把锁的时候,调用的效果就是:当前正在执行的synchronized方法或synchronized代码块的运行结果是同步 阅读全文
posted @ 2016-07-11 16:51 陈家小桐桐 阅读(207) 评论(0) 推荐(0) 编辑
摘要:为了解决“非线程安全”带来的问题,上一节中使用的办法是用关键字synchronized修饰多个线程可能同时访问到的方法,但是这样写是存在一定的弊端的,比如线程A调用一个用synchronized修饰的同步方法,这个方法要执行很长时间,那么其它的线程必须无条件的等线程A执行完释放掉对象锁,当然前提是其 阅读全文
posted @ 2016-07-08 17:24 陈家小桐桐 阅读(379) 评论(0) 推荐(0) 编辑
摘要:在上节中已经说过了“非线程安全”是如何出现的,链接如下:http://www.cnblogs.com/chentong/p/5650137.html,那么怎么解决“非线程安全”问题呢,只需要在两个线程都需要同时访问的方法前面加上synchronized关键字即可,我只贴出需要修改的这个方法的代码,具 阅读全文
posted @ 2016-07-08 09:50 陈家小桐桐 阅读(306) 评论(0) 推荐(0) 编辑
摘要:在Java多线程中我会重点总结五个如下的技术点: 1、非线程安全是如何出现的 2、synchronized对象监视器为Objec时的使用 3、synchronized对象监视器为Class时的使用 4、关键字volatile的主要作用 今天我先说一说第一个问题,非线程安全是如何出现的。“非线程安全” 阅读全文
posted @ 2016-07-07 14:58 陈家小桐桐 阅读(1072) 评论(0) 推荐(0) 编辑