同一线程范围内数据共享
来源:互联网 发布:酷狗网络异常无法访问 编辑:程序博客网 时间:2024/05/29 16:05
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class ThreadScopeShareData {
private static Map<Thread,Integer> threadData=new HashMap<Thread,Integer>();
static class A{
public void getData(){
int data=threadData.get(Thread.currentThread());
System.out.println("A"+Thread.currentThread().getName()+"data:"+data);
}
}
static class B{
public void getData(){
int data=threadData.get(Thread.currentThread());
System.out.println("B"+Thread.currentThread().getName()+"data:"+data);
}
}
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
@Override
public void run() {
int data=new Random().nextInt();
System.out.println(Thread.currentThread().getName()+"data:"+data);
threadData.put(Thread.currentThread(), data);
new A().getData();
new B().getData();
}
}).start();}
}
}
//******************************
package com.ygl;
import java.util.Random;
public class ThreadScopeShareData {
private static ThreadLocal<Integer> threadData=new ThreadLocal<Integer>();
static class A{
public void getData(){
int data=threadData.get();
System.out.println("A"+Thread.currentThread().getName()+"data:"+data);
}
}
static class B{
public void getData(){
int data=threadData.get();
System.out.println("B"+Thread.currentThread().getName()+"data:"+data);
}
}
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
@Override
public void run() {
int data=new Random().nextInt();
System.out.println(Thread.currentThread().getName()+"data:"+data);
threadData.set(data);
new A().getData();
new B().getData();
}
}).start();
}
}
}
//*********************************************************
package com.ygl;
import java.util.Random;
public class ThreadScopeShareData {
private static ThreadLocal<Integer> threadData=new ThreadLocal<Integer>();
private static ThreadLocal<MyThreadScopeData> myThreadScopeData=new ThreadLocal<MyThreadScopeData>();
static class A{
public void getData(){
int data=threadData.get();
System.out.println("A"+Thread.currentThread().getName()+"data:"+data);
MyThreadScopeData mydata=MyThreadScopeData.getThreadInstance();
System.out.println(mydata.getAge()+"===="+mydata.getName());
}
}
static class B{
public void getData(){
int data=threadData.get();
System.out.println("B"+Thread.currentThread().getName()+"data:"+data);
MyThreadScopeData mydata=MyThreadScopeData.getThreadInstance();
System.out.println(mydata.getAge()+"===="+mydata.getName());
}
}
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
@Override
public void run() {
int data=new Random().nextInt();
System.out.println(Thread.currentThread().getName()+"data:"+data);
threadData.set(data);
MyThreadScopeData.getThreadInstance().setName(Thread.currentThread().getName());//与本线程相关的实例
MyThreadScopeData.getThreadInstance().setAge(data);
new A().getData();
new B().getData();
}
}).start();
}
}
}
class MyThreadScopeData{
private static ThreadLocal<MyThreadScopeData> map=new ThreadLocal<MyThreadScopeData>();
private MyThreadScopeData(){}
public static MyThreadScopeData getThreadInstance(){
MyThreadScopeData instance=map.get();
if(instance ==null){
instance=new MyThreadScopeData();
map.set(instance);
}
return instance;
}
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
- 同一线程范围内数据共享
- 线程范围内共享数据
- 线程范围内数据共享
- 线程范围内共享数据
- 线程范围内共享数据
- ThreadLocal线程范围内共享数据
- 线程范围内共享数据(一)
- 线程范围内共享数据(二)
- 线程范围内的数据共享
- ThreadLocal实现线程范围内的数据共享
- 多线程_线程范围内数据共享
- 黑马程序员-线程范围内数据共享
- 线程范围内的共享数据 ThreadLocal
- 《黑马程序员》线程范围内的数据共享
- ThreadLocal类实现线程范围内数据共享
- java线程范围内的数据共享
- 【java并发】线程范围内共享数据
- 20160529_线程范围内数据共享
- 表单 获取当前时间
- 强连通分量之Korasju 与tarjan两小模版题
- 关于FastJson的一些问题的处理(时间问题 ,转换json重用对象引用问)
- 那些年我们一起清除过的浮动
- Android 之 高德地图学习 一 基本地图
- 同一线程范围内数据共享
- 【论文学习】神经光流网络——用卷积网络实现光流预测(FlowNet: Learning Optical Flow with Convolutional Networks)
- POJ 3041 - Asteroids
- Android-->intent-filter 过滤规则的匹配 (Activity通过Uri传递参数)
- android四大组件---ContentProvider
- How Graphic Cards Work
- CSS学习02
- JPEG图像的解压缩操作
- 求链表中间结点