线程范围内共享变量

Posted zhangyugeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程范围内共享变量相关的知识,希望对你有一定的参考价值。

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

public class ThreadDemo2 {
static int data = 0; //定义一个数据
static Map<Thread, Integer> map=new HashMap<Thread, Integer>(); //键值集合
public static void main(String[] args) {
for(int i=0;i<2;i++){ //两个线程

new Thread(new Runnable() {
@Override
public void run() {
//data = (int) Math.random() * 10;
int data =new Random().nextInt();
map.put(Thread.currentThread(), data);
System.out.println(Thread.currentThread().getName() + " data:" + data);
new a().get();
new b().get();
}

}).start();

}

}

static class a {

public void get() {
int data=map.get(Thread.currentThread());
System.out.println(Thread.currentThread().getName() + " a data:" + data);
}
}

static class b {
public void get() {
int data=map.get(Thread.currentThread());
System.out.println(Thread.currentThread().getName() + " b data:" + data);
}

}

}

以上是关于线程范围内共享变量的主要内容,如果未能解决你的问题,请参考以下文章

线程范围内共享变量的概念与作用演进方式

线程范围内共享变量

(黑马Java多线程与并发库高级应用)05 线程范围内共享变量的概念与作用

Java线程与并发库高级应用-线程范围内共享数据ThreadLocal类

ThreadLocal实现线程范围的共享变量

多线程共享变量和 AsyncLocal