Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Threadlocal变量显示为null_Java_Multithreading_Thread Local - Fatal编程技术网

Java Threadlocal变量显示为null

Java Threadlocal变量显示为null,java,multithreading,thread-local,Java,Multithreading,Thread Local,我试图通过线程执行在run方法中打印threadlocal变量,但它显然是空的。请查找信息代码--- 问题陈述---线程的执行给我的是空值,而不是2&3。您正在观察的行为是ThreadLocal的全部要点:您在一个线程中设置的内容从另一个线程中是不可见的。您必须在使用线程的线程内设置ThreadLocal值。您正在观察的行为是ThreadLocal的全部要点:您在一个线程中设置的内容从另一个线程看不到。必须在使用它们的线程内设置ThreadLocal值 public class EvenAndO

我试图通过线程执行在run方法中打印threadlocal变量,但它显然是空的。请查找信息代码---


问题陈述---线程的执行给我的是空值,而不是2&3。您正在观察的行为是
ThreadLocal
的全部要点:您在一个线程中设置的内容从另一个线程中是不可见的。您必须在使用线程的线程内设置
ThreadLocal
值。

您正在观察的行为是
ThreadLocal
的全部要点:您在一个线程中设置的内容从另一个线程看不到。必须在使用它们的线程内设置
ThreadLocal

public class EvenAndOdd implements Runnable{

public EvenAndOdd() {

}

public  static void setThreadContext(){
 threadLocal.set(3);
 eventhreadLocal.set(2);
}
 private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>();
 private static ThreadLocal<Integer> eventhreadLocal = new ThreadLocal<Integer>(); 

@Override
public void run() {
    System.out.println(threadLocal.get());
    System.out.println(eventhreadLocal.get());
}

}
public class PrintNumber {
public static void main(String[] args) {

    EvenAndOdd evenAndOdd =new EvenAndOdd();
    EvenAndOdd.setThreadContext();
    Thread printThread = new Thread(evenAndOdd);
    printThread.start();

}
}