A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xuewuzhijing 中级黑马   /  2012-10-13 23:20  /  1206 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ThreadLocal 与其它同步机制都是为了解决多线程中对同一变量的访问冲突,在普通的同步机制中,是通过对象加锁来实现多个线程对同一变量的安全访问,这时该变量是多个线程共享的,使用这种同步机制需要很细致的分析出某时是哪个线程在操作该变量。 ThreadLocal 是从另一个角度来解决多线程的并发访问,ThreadLocal 会为每一个线程管理一个和该线程绑定的变量副本,从而隔离了对歌线程的数据,每一个线程都拥有自己的变量副本,因此也没有必要对该变量同步了。ThreadLocal 并不能代替其它同步机制,两者面向的方向不同。其它同步机制是为了同步多个线程对相同资源的并发访问,是为了对个线程之间进行通信的有效方式,而 ThreadLocal 是隔离多个线程的数据共享,从根本上就不存在多个线程的共享资源。所以,如果你需要进行多个线程之间的通信,则使用同步机制,如果需要隔离多个线程之间的共享冲突,可以使用 ThreadLocal ,这将极大简化代码量,并且美观易读。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马