zoukankan      html  css  js  c++  java
  • 解读TheadLocal

    一致性问题:

    1、多个主体无法对同一份数据达成共识;

    2、包括分布式一致性问题和并发问题;

    3、特点是场景多问题复杂难以察觉,需要严密的思考甚至数学论证。

    一致性问题的解决办法:

    1、排对(例如:锁,互斥量,管程,屏障);

    2、投票(例如:Paxos,Raft)

    以上两个都有额外开销,避免的方式可以选择ThreadLocal。

    ThreadLocal是什么?

    提供线程局部变量,一个线程的局部变量在多个线程中有独立的副本,特点有:简单(开箱即用),快速(无额外开销),安全(线程安全);场景:多线程场景(资源持有,并发计算,线程一致性,线程安全)使用hash表实现,几乎所有提供多线程特征的语言都是其应用范围。

    ThreadLocal基本的API:带有泛型的构造函数,访问器get/set,初始化,回收

    ThreadLocal四种核心场景:

    1、线程资源持有(ThreadLocalMap实现,持有线程资源供线程的各个部分使用,全局获取减少变成难度)

    2、线程资源一致性(帮助需要保持线程一致的资源,维护一致性,降低编程难度,例如:JDBC会话连接)

    3、线程安全(帮助只考虑了单线程的程序库,无缝想多线程场景迁移)

    4、分布式计算(帮助分布式计算场景的各个线程累计局部计算结果)

    待继续编辑...

  • 相关阅读:
    学习进度条7
    2016年秋季个人阅读计划
    WampServer中MySQL中文乱码解决
    LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib”
    人月神话阅读笔记03
    人月神话阅读笔记02
    个人总结
    人月神话阅读笔记01
    学习进度条15
    学习进度14
  • 原文地址:https://www.cnblogs.com/niuyg928/p/13598478.html
Copyright © 2011-2022 走看看