java基础---->多线程之ThreadLocal(七)

  这里学习一下java多线程中的关于ThreadLocal的用法。人时已尽,人世还长,我在中间,应该休息。

ThreadLocal的简单实例

 一、ThreadLocal的简单使用

package com.linux.huhx.thread2;

import java.util.Random;

public class ThreadLocalerTest {
    private static ThreadLocal<Integer> threadLocal = new ThreadLocal<>();

    public static void main(String[] args) {
       for (int i = 0; i < 2;i++) {
           new Thread(new Runnable() {
               @Override
               public void run() {
                   int randomValue = new Random().nextInt(9999);
                   System.out.println(Thread.currentThread().getName() + ", value: " + randomValue);
                   threadLocal.set(randomValue);

                   new GetA().get();
                   new GetB().get();
               }
           }).start();
       }
    }

    private static class GetA {
        public void get() {
            int value = threadLocal.get();
            System.out.println("A from " + Thread.currentThread().getName() + ", get data " + value);
        }
    }

    private static class GetB {
        public void get() {
            int value = threadLocal.get();
            System.out.println("A from " + Thread.currentThread().getName() + ", get data " + value);
        }
    }
}

运行的结果如下:

Thread-1, value: 2667
Thread-0, value: 9611
A from Thread-0, get data 9611
A from Thread-1, get data 2667
A from Thread-0, get data 9611
A from Thread-1, get data 2667

友情链接

原文地址:https://www.cnblogs.com/huhx/p/baseusejavathreadThreadLocal.html