java 多线程(threadlocal)
package com.fredric.demo;
import java.util.Random;
public class App {
    public static class MyRunnable1 implements Runnable {
        //ThreadLocal是一个线程局部变量
        private ThreadLocal<String> threadlocal
                = new ThreadLocal<String>();
        private int tmp;
        public void run() {
            //threadlocal 包含方法:
            //set:创建一个线程本地变量
            //remove:移除该本地变量
            //get:获取该本地变量的值
            //在hibernate中被用于本地session管理
            threadlocal.set("Name:"+new Random().nextInt(10));
            int i  = new Random().nextInt(10);
            System.out.println("set tmp: " + i);
            tmp = i;
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + " : " + threadlocal.get() + "  " + tmp);
        }
    }
    public static void main(String[] args) {
        MyRunnable1 r = new MyRunnable1();
        Thread t1 = new Thread(r,"thread1");
        Thread t2 = new Thread(r,"thread2");
        t1.start();
        t2.start();
        /*
        输出如下:局部变量没有改变,而Threadlocal每个线程有自己独立的副本
        set tmp: 0
        set tmp: 1
        thread1 : Name:3  1
        thread2 : Name:4  1 */
    }
}
java 多线程(threadlocal)的更多相关文章
- Java多线程——ThreadLocal类的原理和使用
		Java多线程——ThreadLocal类的原理和使用 摘要:本文主要学习了ThreadLocal类的原理和使用. 概述 是什么 ThreadLocal可以用来维护一个变量,提供了一个ThreadLo ... 
- [Java多线程]-ThreadLocal源码及原理的深入分析
		ThreadLocal<T>类:以空间换时间提供一种多线程更快捷访问变量的方式.这种方式不存在竞争,所以也不存在并发的安全性问题. //-------------------------- ... 
- Java多线程ThreadLocal介绍
		在Java多线程环境下ThreadLocal就像一家银行,每个线程就是银行里面的一个客户,每个客户独有一个保险箱来存放金钱,客户之间的金钱不影响. private static ThreadLocal ... 
- Java多线程——ThreadLocal类
		一.概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名 ... 
- 深入理解Java多线程——ThreadLocal
		目录 定义 API 场景分析 场景实验,观察Spring框架在多线程场景的执行情况 10000此请求,单线程 10000次请求,线程数加到100 对c的访问加锁 把c设为ThreadLocal 收集多 ... 
- Java 多线程--ThreadLocal Timer ExecutorService
		ThreadLocal /** * ThreadLocal:每个线程自身的存储本地.局部区域 * @author xzlf * */ public class ThreadLocalTest01 { ... 
- JAVA多线程---ThreadLocal<E>
		p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px ".SF NS Text" } tips: 1 当前ThreadLocal ... 
- java多线程-ThreadLocal
		大纲: 用法 源码 一.用法 ThreadLocal是一个容器,顾名思义就是把一个变量存到线程本地. class Test { public static void main(String[] arg ... 
- Java 多线程 - ThreadLocal
		ref: https://www.cnblogs.com/chengxiao/p/6152824.html 
- java多线程详解(5)-Threadlocal用法
		ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路. 使用这个工具类可以很简洁 ... 
随机推荐
- python安装使用talib
			安装主要在http://www.lfd.uci.edu/~gohlke/pythonlibs/这个网站找到 按照需要的python版本和平台位数下载,然后直接用pip install 进行安装 包含的 ... 
- adv联系题
			http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html(新) 
- [mk] 喝一杯咖啡, 写一写 Makefile
			Makefile 是 Linux 下组织程序的一个工具,它的命令是 make. (首字母M/m都可以) [Makefile] Makefile 编写的主旋律: target: [dependency] ... 
- grep笔记
			grep "match_text" file1 file2 file3 ... #grep可以对多个文件进行过滤 --color ... 
- vpn速度太慢?先从本地网络着手
			使用VPN,用户们抱怨的最多的是速度太慢这个问题,导致网页打不开或者打开缓慢,游戏延迟变高或者根本无法游戏,甚至无法连接等.那么我们今天就来全面解析下VPN的速度是由什么因素引起的. vpn速度过慢 ... 
- iOS多线程  GCD常见用法
			Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispat ... 
- node学习笔记(四)
			//Node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 //http.Server是一个基于事件的HTTP服务器,它的核心由Node.js下层c++部 ... 
- C#  有关打印机的连接判断...随便看看
			各位coder手下留情 /// <summary> /// 判断是否连接打印机 /// </summary> public bool CheckPrinter() { //取得 ... 
- angular JS 做分页
			在网上找了一天,连一个像样点的分页DEMO都没找到,晕死了.大部分都是相互抄,有各种各样的问题,要不是代码有BUG,要不就是解释不明,GITHUB上下载下来的总是乱糟糟的.心累. 
- 快手 KSCAD 5.0 矢量图形设计软件
			今天我的快手软件发布了一个最新版本 KSCAD 5.0,免费使用, 详情请看 www.timegis.com 快手 5.0 (KSCAD) 是一款简单易用的矢量绘图软件,其功能和Visio类似,可以绘 ... 
