码迷,mamicode.com
首页 > 编程语言 > 详细

多线程 - synchronized 和 ThreadLocal 有什么区别?

时间:2020-03-09 00:43:02      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:adl   时间   同步机制   变量   共享   cal   对象   多个   zed   

synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每一个线程都提供了变量的副本,使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。而Synchronized却正好相反,它用于在多个线程间通信时能够获得数据共享。即

  • Synchronized用于线程间的数据共享
  • ThreadLocal则用于线程间的数据隔离

所以ThreadLocal并不能代替synchronized,Synchronized的功能范围更广(同步机制)。

多线程 - synchronized 和 ThreadLocal 有什么区别?

标签:adl   时间   同步机制   变量   共享   cal   对象   多个   zed   

原文地址:https://www.cnblogs.com/frankcui/p/12446101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!