The Threadlocal class in Java allows the created variable to be read and written only by the same thread, even if there are multiple threads executing the same piece of code at the same time, and there is a reference to the same threadlocal variable in this code. These threads still cannot see each other threadlocal variable fields, only see their own private threadlocal instances.
Look at the following demo:
1 Public classmythreadlocal {2 Public Static classIntegerrandomImplementsRunnable {3 PrivateThreadlocal<integer> integerthreadlocal =NewThreadlocal<integer>();4 Public voidrun () {5Integerthreadlocal.set ((int) (Math.random () * 100));6 Try {7Thread.Sleep (5000);8}Catch(interruptedexception e) {9 e.printstacktrace ();Ten } OneSystem.out.println ("ThreadLocal integer Current value:" +integerthreadlocal.get ()); A } - } - Public Static voidMain (string[] args) { theIntegerrandom sharedintegerrandom=Newintegerrandom (); - NewThread (Sharedintegerrandom). Start ();//should use Join (); - NewThread (Sharedintegerrandom). Start ();//should use Join (); - } +}
Execution Result:
ThreadLocal Integer Current value:72
ThreadLocal Integer Current value:88
Multiple Threads: ThreadLocal