first commit
This commit is contained in:
42
src/ThreadLocalDemo.java
Normal file
42
src/ThreadLocalDemo.java
Normal file
@@ -0,0 +1,42 @@
|
||||
public class ThreadLocalDemo {
|
||||
|
||||
public ThreadLocal<Integer> localVar = new ThreadLocal<>();
|
||||
private Integer integer = 0;
|
||||
|
||||
public void add() {
|
||||
integer = integer + 1;
|
||||
}
|
||||
|
||||
public int get() {
|
||||
return integer;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
ThreadLocalDemo threadLocalDemo = new ThreadLocalDemo();
|
||||
|
||||
threadLocalDemo.localVar.set(threadLocalDemo.integer);
|
||||
|
||||
Thread t1 = new Thread(threadLocalDemo::add, "t1");
|
||||
|
||||
Thread t2 = new Thread( () -> {
|
||||
threadLocalDemo.add();
|
||||
threadLocalDemo.localVar.set(threadLocalDemo.get());
|
||||
System.out.println("value in new thread: " + threadLocalDemo.get());
|
||||
System.out.println("value in new thread localVar: " + threadLocalDemo.localVar.get());
|
||||
}, "t2");
|
||||
|
||||
t1.start();
|
||||
t2.start();
|
||||
|
||||
try {
|
||||
t1.join();
|
||||
System.out.println("value in main thread: " + threadLocalDemo.get());
|
||||
System.out.println("value in main thread localVar: " + threadLocalDemo.localVar.get());
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user