05:线程封闭

Posted xmingzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
    }}
    2:栈封闭:
        在线程中定义自己的变量。这样这个变量存在于虚拟机栈中。是线程独有的。

以上是关于05:线程封闭的主要内容,如果未能解决你的问题,请参考以下文章

线程封闭之栈封闭和ThreadLocal

线程封闭

并发编程-线程安全策略之线程封闭

Java多线程——线程封闭

Java多线程——线程封闭

Java并发编程:线程封闭--ThreadLocal