这里学习一下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
友情链接
时间: 2024-08-03 12:02:16