美文网首页
threadlocal 的笔记

threadlocal 的笔记

作者: 风一样的牛 | 来源:发表于2020-01-08 11:52 被阅读0次

    ThreadLocal 并不是Thread,是thread的局部变量,应该叫ThreadLocalVariable不知道哪个驴踢的起了个这个名字,就想叫隔壁二大爷家的狗叫“”二大爷“”,搞得大家一头雾水。

    ThreadLocal 比不是并发访问一个共同对象,是为每个线程分配一个属于该线程的变量,就是每个线程有有一个副本。

    ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程的上下文。

    发明ThreadLocal的初衷是为了提供线程内的局部变量,不是为了解决共享多线程的访问问题,,实际上根本就解决不了,不过很多博客都没说,巴拉巴拉一顿裹脚布的长度,好像很厉害的多线程工具。

    这里引用https://www.jianshu.com/p/09ceb962894d的例子。

    1. 演化过程

    以实际生活中的银行业务办理模型,解释ThreadLocal的诞生过程。读者们可以看到:随着业务模型的不断扩展,代码逻辑变得更加复杂,经过不断优化代码结构的过程,演化出了ThreadLocal这个编程工具

    1. 1初始形态

    大家去银行办理业务时,如果需要排队等候,则会领取一个排队号,直到叫号才能办理业务。

    我们把每一笔业务(Transaction)抽象为一个线程,每一笔业务都有一个唯一的标识(id)。

    ```java

    class Transaction extends Thread

    {

    privateintid;

    publicvoidrun()

    {

    if(wait)

    {

    ...// Waiting}

    else{

    ...// Start transaction

    }

    }

    }

    ```java

    相关文章

      网友评论

          本文标题:threadlocal 的笔记

          本文链接:https://www.haomeiwen.com/subject/hkajactx.html