`
xy_z487
  • 浏览: 280290 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TreadLocal 跟老同学的聊天记录

阅读更多

<!--StartFragment -->

交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。

 [一球成名!]  21:42:49
         
    面的效果不好啊        
[一球成名!]  21:43:00
         
    有点遗憾
吴万里  21:43:01
         
    为什么? 技术 还是 英语?
吴万里  21:43:06
         
    英语?
[一球成名!]  21:43:09
         
    技术
吴万里  21:43:13
         
    什么技术?
[一球成名!]  21:43:51
         
    主要问我有没有去了解开源
[一球成名!]  21:44:18
         
    问框架的设计
吴万里  21:44:36
         
    你怎么说的?
[一球成名!]  21:45:10
         
    我只知道单例模式,他问框架里一个核心类为什么设计成单利的
[一球成名!]  21:45:14
         
    我说不知道
吴万里  21:45:30
         
    ??
吴万里  21:45:33
         
    单利?
[一球成名!]  21:45:42
         
    反正跟多线成有关
吴万里  21:45:48
         
    考 
[一球成名!]  21:45:50
         
    单例
吴万里  21:45:58
         
    原因 不就一个么
吴万里  21:46:04
         
    系统不能重入阿
[一球成名!]  21:46:12
         
    什么?
[一球成名!]  21:46:21
         
    不能重入是什么意思?
吴万里  21:46:23
         
    核心数据不能多线程共同访问
吴万里  21:46:48
         
    核心数据如果 有多个线程访问 
吴万里  21:47:03
         
    就需要先解决数据同步问题阿
吴万里  21:47:12
         
    一般 这个是最主要的
[一球成名!]  21:47:36
         
    我觉得这样解释不够充分
[一球成名!]  21:47:44
         
    哦
[一球成名!]  21:47:57
         
    他问的是theadlocal
[一球成名!]  21:47:59
         
    这个
吴万里  21:48:09
         
    这个是什么没见过
[一球成名!]  21:48:23
         
    ThreadLocal
[一球成名!]  21:48:29
         
    java的
[一球成名!]  21:48:56
         
    这个东西很不错,可我没仔细去研究
吴万里  21:49:03
         
    TheadLocal包含了一组get(),set(Object)方法,可以获得当前线程的放进去的对象。

    ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 
    另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,这个对象的创建并不是通过ThreadLocal.set()来实现的,set()并不会做什么对象的拷贝,而是每个线程之前已经创建好的对象。通 过ThreadLocal.set()将这个新创建的对象的引用以当前线程为key,保存TheadLocal的一


吴万里  21:49:14
         
    线程池管理 像
[一球成名!]  21:49:42
         
    我反正不太清楚
[一球成名!]  21:50:02
         
    他反正是类似map存数据的
吴万里  21:50:12
         
    恩
吴万里  21:50:33
         
    ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。

[一球成名!]  21:51:21
         
    map的key是线成的id,多线成情况下,同过id获得不同对象操作的那个value,不会冲突的问题吧
[一球成名!]  21:51:27
         
    不太确切
吴万里  21:51:46
         
    有点类似吧
吴万里  21:51:56
         
    我还没找到 这个对象存在的原因
[一球成名!]  21:52:16
         
    但为什么用,什么情况下用我还是不清楚,所以不会用
[一球成名!]  21:52:28
         
    一般工厂类会用道
[一球成名!]  21:52:56
         
    所以,这个东西跟单例扯上关系了
吴万里  21:52:58
         
    ThreadLocal类为于java.lang包中,它是java中一种较为特殊的线程绑定机制,会为每个线程维护一个私有的变量空间。通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM为每个运行的线程绑定了私有的本地实例化存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。实际上,其实现原理是在JVM中维护一个Map,这个Map的key就是当前的线程对象,而value则是线程通过ThreadLocal.set方法保存的对象实例。当线程调用ThreadLocal.get方法时,ThreadLocal会根据当前线程对象的引用,取出Map中对应的对象返回。这样,ThreadLocal通过以各个线程对象的引用作为区分,从而将不同线程的变量隔离开来。
吴万里  21:53:13
         
    这个解释比较确切店
[一球成名!]  21:53:32
         
    恩
[一球成名!]  21:53:48
         
    但是为什么怎么跟单利扯上关系的
吴万里  21:54:11
         
    他原题怎么说的
[一球成名!]  21:54:16

[一球成名!]  21:54:25
         
    似乎我回忆起一点点
[一球成名!]  21:55:24
         
    通常:一个类是多例的,在多线成下,用这个类存数据。

[一球成名!]  21:55:37
         
    1个线成1个对象
[一球成名!]  21:56:00
         
    如果是单利的,多线成下可能造成数据的相互修改
[一球成名!]  21:56:26
         
    所以用threadLocal就解决了这个问题
[一球成名!]  21:57:06
         
    单个实例,但可以保存不同线成私有的数据
吴万里  21:58:22
         
    那他的问题 具体 怎么说的呢
吴万里  21:58:38
         
    就是说 为什么单利的时候为什么用threadlocal ??
[一球成名!]  21:58:52
         
    struts的ActionContext为什么使用ThreadLocal
[一球成名!]  21:59:19
         
    struts2的Action就是单例的
吴万里  21:59:48
         
    哦 
吴万里  21:59:58
         
    还真不喜欢这些东西
[一球成名!]  22:00:48
         
    没看过源代码,不过已经感觉ActionContext使用ThreadLocal来管理Action实例的
[一球成名!]  22:01:06
         
    为什么不喜欢?
吴万里  22:01:51
         
    不为什么
吴万里  22:01:55
         
    就是不喜欢 
吴万里  22:02:07
         
    现在 我也不知道 自己该干什么了
[一球成名!]  22:02:11
         
    我觉得很好
[一球成名!]  22:02:36
         
    越是想法多,越是不知道干什么,哈哈
[一球成名!]  22:03:00
         
    有时候回烦的头疼
[一球成名!]  22:03:36
         
    你小子现在抽烟吗?
吴万里  22:04:41
         
    没钱抽  哈哈
吴万里  22:04:48
         
    不想抽 不喜欢

吴万里  22:05:59
         
    想跳出这个怪圈 
[一球成名!]  22:06:10
         
    呵呵,思考问题不抽烟,不像男人啊,总不能嘴里叼个棒棒糖吧
吴万里  22:06:24
         
    却 感觉  不知道从那里出去
吴万里  22:06:27
         
    出去做什么
[一球成名!]  22:06:37
         
    哎呀,跟你一样
吴万里  22:06:41
         
    不做那种面子工程
[一球成名!]  22:07:12
         
    不容易啊
[一球成名!]  22:07:31
         
    到了这个年龄,考虑好多事情
吴万里  22:07:50
         
    可能吧
吴万里  22:08:03
         
    不过 我也准备 看看 招聘
吴万里  22:08:13
         
    看看能不能找个 项目经理的角色
吴万里  22:08:28
         
    或者 银行、外企的SE角色
[一球成名!]  22:08:48
         
    挺烦的,真的,压力大。 感觉。想要个孩子
[一球成名!]  22:09:00
         
    奇怪吧
吴万里  22:09:10
         
    想有个念想?
吴万里  22:09:22
         
    可以阿 你身边那么多美女 搞定阿
[一球成名!]  22:09:32
         
    不知道呢,神奇的想法
吴万里  22:09:50
         
    wc
[一球成名!]  22:09:58
         
    哈哈
[一球成名!]  22:11:05
         
    兄弟,到什么年龄做什么事,我觉得还是不要违背的好,要有结婚的想法啊
[一球成名!]  22:11:21
         
    不能耽误了
[一球成名!]  22:11:58
         
    2个人后,你的思考会有针对性,目标性吧
我猜的
[一球成名!]  22:13:31
         
    跟你一样我也想项目经理呢,自己可以脱离出来
[一球成名!]  22:13:43
         
    要么工资拿高一点
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics