当前位置: 首页 > 教程 > Java.lang >

Java.lang ThreadLocal

精华
小牛编辑
156浏览
2023-03-14

1 Java.lang ThreadLocal介绍

Java ThreadLocal类提供线程局部变量。它使您能够创建只能由同一线程读取和写入的变量。如果两个线程正在执行相同的代码,并且该代码引用了ThreadLocal变量,则两个线程将看不到彼此的本地变量。

2 Java.lang ThreadLocal声明

public class ThreadLocal<T>
   extends Object

3 Java.lang ThreadLocal方法

方法 描述
T get() 此方法返回此线程局部变量的当前线程副本中的值。
protected T initialValue() 此方法返回当前线程的“初始值”此线程局部变量。
void remove() 此方法删除该线程局部变量的当前线程的值。
void set(T value) 此方法设置此线程局部变量的当前线程副本中指定的值。

4 Java.lang ThreadLocal案例

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
public class ThreadLocalExp  
{  
    public static class MyRunnable implements Runnable   
    {  
        private ThreadLocal<Integer> threadLocal =  
               new ThreadLocal<Integer>();  
        @Override  
        public void run() {  
            threadLocal.set( (int) (Math.random() * 50D) );  
            try   
            {  
                Thread.sleep(1000);  
            } catch (InterruptedException e) {  
            }  
            System.out.println(threadLocal.get());  
        }  
    }  
    public static void main(String[] args)   
    {  
        MyRunnable runnableInstance = new MyRunnable();  
          
        Thread t1 = new Thread(runnableInstance);  
        Thread t2 = new Thread(runnableInstance);  
        // this will call run() method   
        t1.start();  
        t2.start();  
    }  
}

输出结果为:

10
33