0
私はスレッドをアプリケーションへの着信要求ごとに使用します。最初に、スレッドのコンストラクタにMDCクラスのフラグをSLF4Jに設定し、それをRunnableのrunメソッドで取得しましたが、値はnullでした。私は問題がMDCクラスに関連していたと思っていましたので、もともとThreadLocalの代わりにSLF4Jの代わりに可能でしたが、私は間違っていて、コードはまだ正しく動作していません。 私のコードは次のとおりです。ThreadLocal変数がThreadとRunnableの間でnullです
public class CustomThread extends Thread
{
public static ThreadLocal<String> status = new ThreadLocal<String>();
public CustomThread(CustomRunnable target)
{
super(target);
status.set("Start");
}
}
public class CustomRunnable implements Runnable
{
public void run()
{
System.out.println(CustomThread.status.get());
}
}
public static void main(String[] args) throws InterruptedException
{
CustomThread t1 = new CustomThread(new CustomRunnable());
t1.start();
}
と結果だった:
The flag is : null
は私がしなければならない何か他のものはありますか?