线程在java中是一个重头戏,算是比较难的一快,特别是并发哪一块,关于并发这一块,项目上几乎也没用到,今天是讲线程范围内的共享变量,突然听到这个概念,可能心里有点发愣,打个简单比方:有三个线程,每一个产生一个数据,有三个模块分别取获取每个线程产生的数据,在java中其实已经有现成的类给我们解决了此方案 哪就是ThreadLoacl类,我们先不用java提供的类先手动解决下
package com.kge;
import java.util.Random;
public class ThreadLocalDemo {
private static int data = 0;
public static void main(String[] args) {
for(int i=0;i<4;i++){
new Thread(new Runnable() {
@Override
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()+"data="+data);
}
}
static class B{
public void get(){