How to implement thread local variables in ThreadLocal
It is believed that many inexperienced people have no idea about how to implement thread local variables in ThreadLocal. Therefore, this paper summarizes the causes and solutions of the problem. Through this article, I hope you can solve this problem.
Public class ThreadLocal1 {volatile static Person p = new Person (); public static void main (String [] args) {new Thread (()-> {try {TimeUnit.SECONDS.sleep (2)) } catch (InterruptedException e) {e.printStackTrace ();} System.out.println (p.name);}) .start () New Thread (()-> {try {TimeUnit.SECONDS.sleep (1);} catch (InterruptedException e) {e.printStackTrace () } p.name = "lisi";}. Start ();}} class Person {String name = "zhangsan";}
Don't want another thread to change to lisi
/ * * ThreadLocal thread local variable * * ThreadLocal uses space for time, and synchronized uses time for space * for example, session exists in hibernate and ThreadLocal, avoid the use of synchronized * * run the following program, understand ThreadLocal * * / public class ThreadLocal2 {/ / volatile static Person p = new Person (); static ThreadLocal tl = new ThreadLocal () Public static void main (String [] args) {new Thread (()-> {try {TimeUnit.SECONDS.sleep (2)) } catch (InterruptedException e) {e.printStackTrace ();} System.out.println (tl.get ());}) .start () New Thread (()-> {try {TimeUnit.SECONDS.sleep (1);} catch (InterruptedException e) {e.printStackTrace () } tl.set (new Person ());}. Start ();} static class Person {String name = "zhangsan";}} after reading the above, have you mastered how to implement thread local variables in ThreadLocal? If you want to learn more skills or want to know more about it, you are welcome to follow the industry information channel, thank you for reading!