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