2018年7月27日

Java并发编程原理与实战十二:深入理解volatile原理与使用

摘要: volatile:称之为轻量级锁,被volatile修饰的变量,在线程之间是可见的。 可见:一个线程修改了这个变量的值,在另一个线程中能够读取到这个修改后的值。 synchronized除了线程之间互斥之外,还有一个非常大的作用,就是保证可见性。以下demo即保证a值的可见性。 首先来看demo: 阅读全文

posted @ 2018-07-27 00:12 pony1223 阅读(429) 评论(0) 推荐(0) 编辑

Java并发编程原理与实战十一:锁重入&自旋锁&死锁

摘要: 一、锁重入 运行结果: 以上结果说明,线程A在释放方法a的同步锁之前,是可以重新获得b方法的同步锁的。同一个线程拿到同一个对象的锁,它是可以进入另一个同步方法的,这就是锁的重入。以上代码仅仅是同一个线程在一个同步方法中去成功调用另一个同步方法,并且,锁的是同一个实例。那么,不同的线程拿同一把对象去加 阅读全文

posted @ 2018-07-27 00:09 pony1223 阅读(471) 评论(0) 推荐(1) 编辑

Java并发编程原理与实战十:单例问题与线程安全性深入解析

摘要: 单例模式我想这个设计模式大家都很熟悉,如果不熟悉的可以看我写的设计模式系列然后再来看本文。单例模式通常可以分为:饿汉式和懒汉式,那么分别和线程安全是否有关呢? 一、饿汉式 先看代码: 运行结果: 所谓的饿汉模式:不管是否使用到instance这个实例,我们都在创建的过程中就对它进行实例化。 那么,饿 阅读全文

posted @ 2018-07-27 00:01 pony1223 阅读(392) 评论(0) 推荐(0) 编辑

导航