raylee2007的专栏

java技术博客,每天深入一点点

从头认识多线程-4.4 ThreadLocal的实现原理

从头认识多线程-4.4 ThreadLocal的实现原理这一章节我们来讨论一下ThreadLocal的实现原理。1.ThreadLocal的存储一般可以认为是ThreadLocalMap这个内部类来存储,但是如果更加深入一层,其实他的存储是Entry类的可变数组,这个跟HashMap的存储比较相似...

2016-06-20 14:19:15

阅读数:1294

评论数:1

从头认识多线程-4.3 ThreadLocal使用时需要注意的地方

4.3 这一章节我们来讨论一下关于ThreadLocal的使用的时候需要注意的地方ThreadLocal主要的使用是get、set、initialValue这几个方法,具体的使用我们这里不做介绍,下面只是举一些它使用的时候需要注意的地方。1.在get方法的时候出现nullpackage com.r...

2016-06-17 15:47:21

阅读数:5428

评论数:0

从头认识多线程-4.2 对象逸出的其他解决方案-主要是ThreadLocal的应用

这一章节我们来讨论一下对象逸出的其他解决方案。1.由于出现对象逸出都是在多线程环境下,那么,我们换成单线程即可,当然,这个方法基本没有人使用, 因为现在都是多核处理器,为了提升性能,不可能使用单核,但是下面我也给出例子吧。package com.ray.deepintothread.ch04.to...

2016-06-12 23:00:07

阅读数:3235

评论数:0

从头认识多线程-4.1 对象的发布(Publish)、逸出(Escape)以及逸出的解决方案

这一章节我们来讨论一下对象的发布与逸出。其实在前两个章节我们都有想应的讨论,只不过有一些不用补充的问题,我将会放到这个章节里面去。1.发布(Publish)当一个对象能够给其他代码引用。package com.ray.deepintothread.ch04.topic_1; import jav...

2016-06-11 21:45:25

阅读数:3770

评论数:2

从头认识多线程-3.3 synchronized某些解决不了的可视性问题,只能使用volatile来解决

这一章节我们讨论一下synchronized不但具备操作的同步性,还具备volatile的可视性。1.引入之前的异步死循环代码:package com.ray.deepintothread.ch03.topic_3; public class DeadForAsychn { public s...

2016-06-08 11:52:29

阅读数:2994

评论数:0

从头认识多线程-3.2 使用volatile声明的变量的写操作是非原子性的

这一章节我们来讨论一下使用volatile声明的变量的各种操作是非原子性的。1.上一章节我们已经提到,volatile把工作内存里面变量的改变同步到主内存, 使得各个线程能够把该变量当成是整体的状态控制2.但是,使用volatile声明的变量的写操作是非原子性的代码清单:package com.r...

2016-06-06 22:19:39

阅读数:3622

评论数:0

从头认识多线程-3.1 使用volatile解决异步死循环

这一章节我们来讨论一下使用volatile解决异步死循环。1.在讨论上面的问题前,我们引入另一个例子:同步死循环代码清单:package com.ray.deepintothread.ch03.topic_1; public class DeadFor { private boolean is...

2016-06-06 10:44:52

阅读数:3540

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭