java线程安全之ThreadLocaI理解(十)
来源:互联网 发布:华兴数控编程代码 编辑:程序博客网 时间:2024/06/16 00:44
概念理解
线程局部变量,是一种多线程间并发访问变量的解决方案。与其synchronized等加锁的方式不同,ThreadLocal完全不提供锁,而使用以空间换时间的手段,为每个线程提供变量的独立副本,以保障线程安全。
从性能上说,ThreadLocal不具有绝对的优势,在并发不是很高的时候,加锁的性能会更好,但作为一套与锁完全无关的线程安全解决方案,在高并发量或者竞争激烈的场景,使用ThreadLocal可以在一定程度上减少锁竞争。
案例
public class ConnThreadLocal { //线程局部变量 public static ThreadLocal<String> th = new ThreadLocal<String>(); public void setTh(String value){ th.set(value); } public void getTh(){ System.out.println(Thread.currentThread().getName() + ":" + this.th.get()); } public static void main(String[] args) throws InterruptedException { final ConnThreadLocal ct = new ConnThreadLocal(); Thread t1 = new Thread(new Runnable() { @Override public void run() { ct.setTh("张三"); ct.getTh(); } }, "t1"); Thread t2 = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); ct.getTh(); } catch (InterruptedException e) { e.printStackTrace(); } } }, "t2"); t1.start(); t2.start(); }}
打印结果
t1:张三t2:null
源代码:https://github.com/hfbin/Thread_Socket/tree/master/Thread/conn008
阅读全文
0 0
- java线程安全之ThreadLocaI理解(十)
- java线程安全之synchronized理解篇(一)
- Java之线程安全的简单理解
- java线程安全理解
- java线程安全理解
- java线程安全理解
- java线程安全理解
- java线程安全理解
- Java多线程理解(线程安全)
- java线程安全的理解
- java线程安全的理解
- JAVA线程安全的理解
- java多线程(十)使用线程安全的集合
- Java synchronized的理解!(线程安全,线程同步)
- 探索深入理解java虚拟机之线程安全与锁优化(8)
- Java线程安全和线程不安全理解
- 多线程学习总结(十)——线程安全之线程间的通信深入
- Java线程(十)
- 判断手机横竖屏提示
- ping某个域名的过程
- CentOS 6.5 安装Nginx 1.7.4
- HDOJ2007 平方和与立方和
- ThinkPHP 5如何接入支付宝支付功能
- java线程安全之ThreadLocaI理解(十)
- php垃圾回收机制
- build.gradle配置说明
- Python学习day_01
- Spring配置文件之标签(一)<context:component-scan>
- 上机练习题——接口
- linux驱动(七)gpiolib库详解
- 《设计模式》学习笔记1——七大面向对象设计原则
- Linux部署以及常规使用