java并发编程实战读书笔记2
Posted 郭梧悠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java并发编程实战读书笔记2相关的知识,希望对你有一定的参考价值。
1、volatile ,是一种比sychronized关键字更轻量级的同步机制,在访问volatile变量时因为不会执行加锁操作,所以不会导致线程阻塞。volatile变量也有局限性,比如它不足以确保递增操作(++)的原子性。该变量通常用作某个操作完成,发生中断或者状态的标志。典型用法如下:
volatile bolean asleep;
while(asleep){
countSomeSheep();
}
加锁机制既可以确保可见性又可以确保原子性,而volatitle变量只能确保可见性,在读取volatile变量时总会返回最新的值。
2、Threadlocal 提供了get和set方法,ThreadLocal对象在线程A中调用set方法保存某个value,哪么就只有线程线程A可以将这个value取出来,也就是说哪个线程调用Threadlocal的set方法,该线程就可以拿到自己在ThreadLocal保存的值“。就比如超市门口的临时存储箱,这个存储箱就可以比作ThreadLocal变量,购物者就是线程,购物者只能拿走自己储物格中的东西。关于ThreadLocal的详细说明,可以阅读博主的ThreadLocal原理浅析
3、当执行时间较长的计算或者可能无法快速完成的操作时,比如网络IO等,一定不要持有锁。这很明显了,当一个人长时间占据一个厕所坑位蹲坑的时候,别人肯定会不爽。
以上是关于java并发编程实战读书笔记2的主要内容,如果未能解决你的问题,请参考以下文章