Java中线程范围内共享问题

Posted 萌的一波

tags:

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

本宝宝新手,勿喷!直接上代码了,

线程范围内共享问题:各个线程之间共享同一块数据,一个数据损坏就全部损坏,需要的可以运行一下!

 

public class Threads {
private static HashMap<Thread, Integer> data = 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() {
int value = new Random().nextInt(1000);
data.put(Thread.currentThread(), value);
System.out.println("名字是:"+Thread.currentThread().getName()+"数据是:"+value);
A a1 = new A();
a1.getData();
B b1 = new B();
b1.getData();
C c = new C();
c.getDate();
}
}).start();
}
}
static class A{
public void getData(){
Thread thread = Thread.currentThread();
int value = data.get(thread);
System.out.println(thread.getName()+"从A中获取数据"+value);
}
}
static class B{
public void getData(){
Thread thread = Thread.currentThread();
int value = data.get(thread);
System.out.println(thread.getName()+"从B中获取数据"+value);
}
}
static class C{
public void getDate() {
Thread thread = Thread.currentThread();
int value = data.get(thread);
System.out.println(thread.getName()+"从C中获取数据"+value);
}
}

}












































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

java并发线程范围内共享数据

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

java 多线程 day05 线程范围内的数据共享

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

jdk1.5线程知识列表

线程范围内共享变量的概念与作用