05:线程封闭
什么是线程封闭:
数据被封闭到各自的线程中,从而避免使用同步的技术。这个概念称作线程封闭。
为什么提出线程封闭:
多线程访问共享可变的数据是,涉及到了数据同步问题。但是并不是所有的时候都需要共享数据。所以提出了线程封闭的概念。
Java中线程封闭的具体实现有:ThreadLocal、栈封闭。
1:ThreadLocal
是一种线程级别的变量。每个线程都有自己的值。
public class Test { public static ThreadLocal<String> var = new ThreadLocal<>(); // 这个变量的值在各个线程中是不同的。 public static void main(String[] args) throws IOException { new Thread(()->{ var.set("线程1的值"); }).start(); new Thread(()->{ var.set("线程2的值"); }).start(); System.out.println(); }}
在线程中定义自己的变量。这样这个变量存在于虚拟机栈中。是线程独有的。