亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第8天 ThreadLocal學習

標簽:
Java


课程名称:ThreadLocal

课程章节:

第1章 纵观课程纲要

第2章 是什么?怎么用?何时用?如何不出问题?

主讲老师:求老仙

课程内容:

    ThreadLocal解决的是什么问题(数据一致性的问题)

    ThreadLocal在Java线程高并发中的应用

课程收获:

1、 程序的安全性

一致性问题

发生在多个主体对同一份数据无法达成共识。

包括:分布式一致性问题,并发问题

特点:场景多,问题复杂,难以觉察,需要严密的思考,甚至数据论证

 

排队:性能开销较高

投票:高效              两者都有额外的开销

规则:同一份数据尽量一个源头

 

2、 ThreadLocal

https://img1.sycdn.imooc.com//631ea9a2000172d313660768.jpg

提供线程局部变量,一个线程局部变量在多个线程中,分别有独立的值(副本),相当于给每个线程分配了独立的空间。

特点:简单(开箱即用)、快速(无额外开销)、安全(线程安全)

场景:多线程场景(资源持有,线程一致性,并发计算,线程安全等)

https://img1.sycdn.imooc.com//631ea9860001494913440727.jpg

实现原理:Java中用哈希实现

https://img1.sycdn.imooc.com//631ea9c40001421813360732.jpg

应用范围:几乎所有提供多线特征的语言

进程是操作系统资源分配的最小单位;

线程是操作系统最小的计算单位。

 

构造函数:ThreadLocal<T>()

初始化:initialValue()

访问:get/set

回收:remove

 

  在程序中,每一个线程都是一个session,是客户端与服务端进行交互的一个过程;在这种情景中,只要程序执行的线程相同的情况下,所操作的用户就是相同的。

https://img1.sycdn.imooc.com//631ea9ef0001bff813400729.jpg


把用户数据在执行程序1时就创建一个 ThreadLocal的本地变量,放入到 ThreadLocalMap 的 x 变量中,在执行 程序2、程序3 时就可以拿到当前线程分配到的用户,而不会影响到其他线程的资源变量。


        




        


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消