首页 > 学院 > 开发设计 > 正文

Java Concurrency in Practice 之Volatile和ThreadLocal

2019-11-14 11:50:40
字体:
来源:转载
供稿:网友

1.volatile

java 提供了一种稍弱的同步机制,既volatile变量,用来确保将变量的更新操作通过到其他线程。当把变量申明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因为不会讲该变量上的操作与其他内存操作一起重排序

使用场景:

检查某个状态未标记以判断是否退出循环

误区:

volatile的语义不足以保证多线的原子递增操作

2.ThreadLocal

ThreadLocal用于维持线程封闭性,这个类能使线程中的某一个值与保存值的对象关联起来。ThreadLocal对象通常用于防止对可变的单实例变量或全局变量进行共享。ThreadLocal提供了get与set方法等接口或方法,这些方法将每个使用该变量的线程都存有一份副本,因此get总是返回当前执行线程在调用set是设置的最新值。使用场景:1.JDBC连接报保存到ThreadLocal对象中,每个线程都会拥有自己的连接2.http://blog.csdn.net/caicongyang/article/details/50429681 之前写的ThreadLocal源码阅读与实例


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表