hz90 / java-base-knowledge

0 stars 0 forks source link

ThreadLocal使用方法 #21

Open hz90 opened 4 years ago

hz90 commented 4 years ago

/**


import org.apache.commons.lang3.RandomUtils;

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

public class TestThreaLocalSelf { private static Map<Thread, Integer> threadIntegerHashMap = 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() {
                Integer random= RandomUtils.nextInt(1,100);
                System.out.println("class main" + "Thread:" +
                        Thread.currentThread().getName() + "data:"
                        +random);
                threadIntegerHashMap.put(Thread.currentThread(),random);
                new A().print();
                new B().print();
            }
        }).start();
    }
}

static class A {
    public void print() {
        System.out.println("class A" + "Thread:" +
                Thread.currentThread().getName() + "data:"
                + threadIntegerHashMap.get(Thread.currentThread()));
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
static class B {
    public void print() {
        System.out.println("class B" + "Thread:" +
                Thread.currentThread().getName() + "data:"
                + threadIntegerHashMap.get(Thread.currentThread()));
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

} class mainThread:Thread-1data:75 class mainThread:Thread-0data:94 class AThread:Thread-0data:94 class AThread:Thread-1data:75 class BThread:Thread-1data:75 class BThread:Thread-0data:94