线程--(1)ThreadLocal简单使用
2017-07-26 22:06
316 查看
一、概念
ThreadLocal概念:线程局部变量,是一种并发线程访问变量的解决方案,与synchronized等加锁不同,ThreadLocal完全不提供锁,而使用空间换取时间的方式,为每一个线程变量提供一个副本,以保证线程之间的安全,因为它们之间是相互独立的。二、代码说明
package com.flx.king.it_201707; /** * 功能:ThreadLocal的使用 * * @author FuLX * @2017-7-26 下午9:07:14 */ public class Dome_01_ThreadLocal { // 定义一个线程局部变量 ThreadLocal<String> tl = new ThreadLocal<String>(); public void setTl(String value) { System.out .println(Thread.currentThread().getName() + " 线程set值" + value); tl.set(value); } public void getTl() { System.out.println(Thread.currentThread().getName() + " 拿到的值:" + this.tl.get()); } public static void main(String[] args) { final Dome_01_ThreadLocal dome = new Dome_01_ThreadLocal(); // 创建线程,命名为t1 Thread t1 = new Thread(new Runnable() { @Override public void run() { dome.setTl("张三"); dome.getTl(); } }, "t1"); // 创建线程,命名为t2 Thread t2 = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); dome.setTl("李四"); dome.getTl(); } catch (InterruptedException e) { e.printStackTrace(); } } }, "t2"); // 启动线程 t1.start(); t2.start(); } }代码运行结果:
t1 线程set值张三 t1 拿到的值:张三 t2 线程set值李四 t2 拿到的值:李四
三:总结
ThreadLocal是线程的局部变量,相互之间是不受影响的,所有说是线程安全的。相关文章推荐
- linux线程使用简单实例
- 使用Windbg简单排查线程 CPU 100%的方法
- 使用Windbg简单排查线程 CPU 100%的方法
- 一起谈.NET技术,关于C#线程,线程池和并行运算的简单使用和对比
- Java线程的简单使用
- Java线程简单使用介绍zz
- 线程简单使用
- 简单使用BackgroundWorker创建多个线程的教程
- 关于C#线程,线程池和并行运算的简单使用和对比
- BackgroundWorker 简单使用教程 多个线程的创建
- java线程:关于Callable和Future的简单使用:有返回值的线程
- 线程知识-ThreadLocal使用详解
- BackgroundWorker 简单使用教程 多个线程的创建
- 关于StartCoroutine的简单线程使用
- 关于C#线程,线程池和并行运算的简单使用和对比
- 一个perl线程使用方法的简单演示
- java学习——ThreadLocal 线程局部 (thread-local) 变量的使用
- MFC线程使用简单示例
- JAVA线程的简单使用
- 最简单的使用线程的例子