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

Posted 为爱奋斗不息

tags:

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

import java.util.HashMap;
import java.util.Map;
import java.util.Random;
/**
* Created by chengtao on 17/12/3.
* 线程范围内的数据共享:即模块从不同的线程获取到的值是不一样的
* 可以通过 hashMap<thread,data> 来将线程和对应的值通过map来区分
*/

public class Thread0501_ThreadScopeShareData {

private static int data = 0;
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
public void run() {
data = new Random().nextInt();
System.out.println(Thread.currentThread().getName()
+ " has put data :" + data);
new A().get();
new B().get();
}
}).start();
}
}

static class A{
public void get(){
System.out.println("A from " + Thread.currentThread().getName() + " get data :" + data);
}
}

static class B{
public void get(){
System.out.println("B from " + Thread.currentThread().getName() + " get data :" + data);
}
}
}




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

/**
* Created by chengtao on 17/12/3.
* 线程间的数据共享
*/



public class Thread0502_ThreadScopeShareData {

private static int data = 0;
private static Map<Thread, Integer> threadData = new HashMap<Thread, Integer>();
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
public void run() {
int data = new Random().nextInt();
System.out.println(Thread.currentThread().getName()
+ " has put data :" + data);
threadData.put(Thread.currentThread(), data);
new A().get();
new B().get();
}
}).start();
}
}

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

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

























































































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

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

Java多线程系列--“JUC线程池”05之 线程池原理

java多线程系类:JUC线程池:05之线程池原理(转)

java线程day-01

从零开始学Java-Day17

毕向东Java视频学习笔记Day11-Day13 多线程