ThreadLocal实现线程范围的共享变量
一、如何理解线程范围内共享数据
1、static int num=0;
2、线程1访问num变量,并设置为num=2;线程2访问num变量,并设置为num=3;
3、当线程1中对象A、B、C 在访问线程1中的num变量的时候,就不是它本身设置的值了,如何才能使线程1访问它本身设置的数据呢?
aaarticlea/png;base64,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Pn73roSGhsR9e5P2NyY3HUg5dDD1yOH0lubM1mNZx1tz2k9sPdme19mRf+Z0QXdX0dme4t5zpef7yvovlF8cqBwarBoeqhkdAXJjLP/MaSyCs61kZWXhrYC5ufng4CCRW0FDsFDu37/PwMREB7deQXUcSKmqFhcXgw4jMD59+vTx48d37969efPmr7/+evHixR9//PH7778/fvz4t99+u3///r1793755Zfbt2//9NNPWBER35QtKYcObjnY9Hc7t6chfveuuJ31sTu2b6irXV9THVNZGV1RHlVaGllSHF5YuDZ/W2heXvDWnKDs7IDMDHNvb2Y2NseoKK+kzZ4JCR7xcatjY902rHddt845+hunqKhVEeH2a9fahYbYBAVZBwZY+vmZ+/iYeXmt9PQ0cXc3dnMzcnE2cHLSX+Wga2+vY2ujbW2taWmhbmamZrpSZcUKZSOj5QYGCnq68jo6slqaMhoaUmqqksrK4krLxRQUROTlhGVkBKWkcBISAmJi/CIivEJCPDgcl4AABy8vOw8PKycnCwcHEysrIzPzMkbGpcuWLV6yZNGiRRgMZvHixUuWLl2Gb+tYWJjZ2Vk5ONi4uTl4eDj5+bmxWB5BQT5hYX5RUay4uKCUlJC0tIicnKi8vPjy5ZLKylKqqgKioiysrGZmZhYWFtbW1nZ2dg4ODk5OTi4uLqtXr/b09PTy8vL19fX39w8KCgoNDQ0LC4uMjPzmm2/WrVu3cePGuLi4hISEzZs3b9myJTU1NSMjIzs7e+vWrdu2bSsoKCguLi4rK6uoqKiurq6trd2xY8euXbsaGhr27du3f//+gwcPHj58uKWlpbW1ta2t7eTJkx0dHWfOnOnp6Tl37tz58+f7+/svXbo0PDw8MjJy5cqVa9eufffddzdu3Lh58+bPP/98586dX3/99X//+9+DBw8ePXr05MmTZ8+ePX/+/OXLl69fv3779u2HDx/Gx8epsajunTt3goKCeHl509PTnT08ArOygNdUNKroinJre3uKB2gutm7damxs3NfXR9JW0BBQABZ29q0n24En3MJFwY6D2tGR6svDVUODFZculg30l144X9zXW3TubEFPd/6Z03mdnbmnTua0t2cdb2VgYurq6vr++++vX79+9erV0dHRy5cvDw4OXrx48cKFC319fWfPnu3q6jp9+vSpU6fa29uPHz9+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" alt="" />
public class ShareData {
private static double num=0;
public static void main(String[] args) {
//同时存在2个线程
for(int i=0;i<2;i++){
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
//每个线程改变num的数据
num=new Random().nextDouble();
System.out.println(Thread.currentThread().getName()+" has a put num:"+num);
//分别调用A、B的对象
new A().get();
new B().get();
}
}).start();
}
}
//A对象 输出 当前线程中 num 的数据
static class A{
public void get(){
System.out.println(Thread.currentThread().getName()+" has a num---A:"+num); }
}
//B对象 输出 当前线程中 num 的数据
static class B{
public void get(){
System.out.println(Thread.currentThread().getName()+" has a num---B:"+num); }
}
}
结果分析:
aaarticlea/png;base64,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" alt="" />
二、使用Map集合实现线程范围内共享数据
1、private static Map<Thread,Double> map=new HashMap<Thread,Double>();
通过map集合,来维护每个线程中独自的变量。
public class ThreadScopeSharenum {
//全局共享变量 num
private static double num=0;
//把Thread作为关键字,设置num的值作为值put到map集合中
private static Map<Thread,Double> map=new HashMap<Thread,Double>();
public static void main(String[] args) {
//维护两个线程
for(int i=0;i<2;i++){
new Thread(new Runnable() { @Override
public void run() {
// 设置num的值,并保存到 currentThread
double num=new Random().nextDouble();
map.put(Thread.currentThread(), num);
System.out.println(Thread.currentThread().getName()+" has a put num:"+num);
//A 、B对象通过 currentThread 来获取值
new A().get();
new B().get();
}
}).start();
}
}
//A对象 输出 当前线程中 num 的数据
static class A{
public void get(){
System.out.println(Thread.currentThread().getName()+" has a num---A:"+map.get(Thread.currentThread())); }
}
//B对象 输出 当前线程中 num 的数据
static class B{
public void get(){
System.out.println(Thread.currentThread().getName()+" has a num---B:"+map.get(Thread.currentThread())); }
}
}
结果分析:
aaarticlea/png;base64,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" alt="" />
三、ThreadLocal实现线程范围的共享变量(1个)
- new ThreadLocal<T>(); //保证一个T类型的变量,在线程范围内正确的共享。
- public void set(T value);//内容维护了一个map集合,key默认为当前线程。
- public T get();//取出当前线程,变量的值。
import java.util.HashMap;
import java.util.Map;
import java.util.Random; public class ThreadScopeSharenum {
//全局共享变量 num
private static double num=0;
//把Thread作为关键字,设置num的值作为值put到map集合中
private static ThreadLocal<Double> map=new ThreadLocal<Double>();
public static void main(String[] args) {
//维护两个线程
for(int i=0;i<2;i++){
new Thread(new Runnable() { @Override
public void run() {
// 设置num的值,并保存到 currentThread
double num=new Random().nextDouble();
map.set(num);
System.out.println(Thread.currentThread().getName()+" has a put num:"+num);
//A 、B对象通过 currentThread 来获取值
new A().get();
new B().get();
}
}).start();
}
}
//A对象 输出 当前线程中 num 的数据
static class A{
public void get(){
System.out.println(Thread.currentThread().getName()+" has a num---A:"+map.get()); }
}
//B对象 输出 当前线程中 num 的数据
static class B{
public void get(){
System.out.println(Thread.currentThread().getName()+" has a num---B:"+map.get()); }
}
}
四、如何通过ThreadLocal实现线程范围内多个共享变量
ThreadLocal实现线程范围的共享变量的更多相关文章
- 线程:ThreadLocal实现线程范围内共享变量
在web应用中,一个请求(带有请求参数)就是一个线程,那么如何区分哪些参数属于哪个线程呢?比如struts中,A用户登录,B用户也登录,那么在Action中怎么区分哪个是A用户的数据,哪个是B用户的数 ...
- 并发库应用之一 & ThreadLocal实现线程范围的共享变量
ThreadLocal用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据. 每个线程调用全局ThreadLocal对象的 ...
- Java多线程——线程范围内共享变量和ThreadLocal
多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. package java_ ...
- Java多线程——线程范围内共享变量
多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. package java_ ...
- JAVA 并发编程-线程范围内共享变量(五)
线程范围内共享变量要实现的效果为: 多个对象间共享同一线程内的变量 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsi ...
- ThreadLocal解决线程安全问题
一.线程安全问题产生的原因 线程安全问题都是由全局变量及静态变量引起的 二.线程安全问题 SimpleDateFormate sdf = new SimpleDateFormat();使用sdf.pa ...
- java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程 ThreadLocal在我的笔记"关于线程同步"的第5种方式里面有介绍,这里就不多说了. ...
- ThreadLocal本地线程变量的理解
一般的Web应用划分为展现层.服务层和持久层三个层次,在不同的层中编写对应的逻辑,下层通过接口向上层开放功能调用.在一般情况下,从接收请求到返回响应所经过的所有程序调用都同属于一个线程. ...
- ThreadLocal与线程池使用的问题
感谢博主的这篇分享,见 https://www.cnblogs.com/qifenghao/p/8977378.html 在今天的面试中,突然被考官问了这个问题,当时脱口而出的是 threadloca ...
随机推荐
- okhttp3.4.1+retrofit2.1.0实现离线缓存
关于Retrofit+OkHttp的强大这里就不多说了,还没了解的同学可以自行去百度.这篇文章主要讲如何利用Retrofit+OkHttp来实现一个较为简单的缓存策略:即有网环境下我们请求数据时,如果 ...
- 自制一个H5图片拖拽、裁剪插件(原生JS)
前言 如今的H5运营活动中,有很多都是让用户拍照或者上传图片,然后对照片加滤镜.加贴纸.评颜值之类的.尤其是一些拍照软件公司的运营活动几乎全部都是这样的. 博主也做过不少,为了省事就封装了一个简单的图 ...
- C#_备份sqlserver数据库
C# 代码备份数据库 ,不需要 其他 DLL protected void Button1_Click(object sender, EventArgs e) { /// ...
- 管理idea Open Recent
在微服务开发过程中,随着服务的增加,日常需要在各个服务之间切换,这样idea 的 Open Recent 功能就显得特别有用,但是过多的最近打开记录中包括已经删除的工程或者无用的工程导致影响开发时切换 ...
- Beta阶段事后分析
1. 设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们在Beta阶段任务主要分为两部分,一类是对原功能的扩展,一类是新的博文功能.我们通过规 ...
- ace how to guide
Configuring the editor there are several ways to pass configuration to Ace 有几种方法可以将配置传递给ace // pass ...
- PAT甲题题解-1030. Travel Plan (30)-最短路+输出路径
模板题最短路+输出路径如果最短路不唯一,输出cost最小的 #include <iostream> #include <cstdio> #include <algorit ...
- win10下装上virtualbox 以及在virtualbox上装上 ubuntu 12.04
首先要下载virtual 在win10下可能第一步你就遇到了麻烦 首先刚开始我装的是最新版本的virtualbox 5.0.24.8355 (直接百度就可搜到) 然后可以按照这个教程 http://j ...
- 【Leetcode】209. Minimum Size Subarray Sum
Question: Given an array of n positive integers and a positive integer s, find the minimal length of ...
- PAT 甲级 1145 Hashing - Average Search Time
https://pintia.cn/problem-sets/994805342720868352/problems/994805343236767744 The task of this probl ...