Loading...

ThreadLocalか。

Javaです。ThreadLocalです。



package a; public class TestThreadLocal { static class A { final ThreadLocal<String> value1 = new ThreadLocal<>(); String value2; void setValue(String value) { this.value1.set(value); this.value2 = value; } void print(String marker) { System.out.printf("%s value1:%s value2:%s threadName:%s%n", marker, this.value1.get(), this.value2, Thread.currentThread().getName()); } } public static void main(String[] args) throws InterruptedException { final A a = new A(); a.print("a1==>"); a.setValue("a"); a.print("a2==>"); new Thread(new Runnable() { @Override public void run() { a.print("b1==>"); a.setValue("b"); a.print("b2==>"); } }).start(); Thread.sleep(1); new Thread(new Runnable() { @Override public void run() { a.print("c1==>"); a.setValue("c"); a.print("c2==>"); } }).start(); Thread.sleep(1); a.print("a3==>"); } }

結果

Webとかで使う場合、スレッドが再利用されるので、しっかり後片付けしないとだめだよ。
参考

リアクション: 
ThreadLocal 4665602632956204727

コメントを投稿

ホーム item

このブログを検索

Random Posts

Popular Posts

Labels

ADS