云迅通云讯通白金股是什么?

当前访客身份:游客 [
当前位置:
我在 run 里面写一个局部变量也是各线程独立的啊,所以&threadlocal 有啥用嘛。
共有9个答案
<span class="a_vote_num" id="a_vote_num_
threadLocal里的东西,其它对象和方法也能拿到,只要在同一个线程里, 局部变量就只能自己玩了
<span class="a_vote_num" id="a_vote_num_
我知道区别,但是我不知道如何跟你讲这个区别!
--- 共有 1 条评论 ---
想到什么说什么
(1周前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
区别太大了,简单来说就是线程和runnable的区别
<span class="a_vote_num" id="a_vote_num_
threadlocal所有线程都知道这个值是什么,但是局部变量的话,各个线程互相不知道值是多少
<span class="a_vote_num" id="a_vote_num_
threadlocal就像银行,run方法内部就像你家,两边都有你的钱,但是机制并不一样
银行有大家所有的钱,你家只有你的钱,但你到银行也只能取自己的钱
<span class="a_vote_num" id="a_vote_num_
全局变量与局部变量最大的区别就是全局变量是所有线程共享的,也就是说多个线程可以通过全局变量通信。
假设要设计这么一个程序:三个线程同时从0数到10,一旦有一个线程数到了10,三个线程都从0重新开始数,一直这么循环。用run创建局部变量的方式就没法做,因为每一个线程之间是完全独立的。
ThreadLocal保存共享变量的副本,用于特定的使用场景。看源码就知道ThreadLocal类是基于Thread类来实现的,如果直接用继承Thread来实现上面的功能也是可以的,只不过JDK都已经给封装好了,自己能想到的思路估计跟ThreadLocal的实现思路差不多。如果场景适合使用ThreadLocal,为何不直接用呢。
<span class="a_vote_num" id="a_vote_num_
一般的ThreadLocal变量会声明问static变量。这样子就可以通过类名.ThreadLocal.get()获取当前线程的值。
如果你在runnable里用静态变量,首先,你要找到Runnable的对象,然后要runnable提供get方法来访问线程的对象。对于用线程池来管理线程的情况,ThreadLocal明显更适合
<span class="a_vote_num" id="a_vote_num_
别人替你写了那么多代码这就是有用...
<span class="a_vote_num" id="a_vote_num_
http://my.oschina.net/clopopo/blog/149368 这个里面讲的挺好
更多开发者职位上
有什么技术问题吗?
CheneyW...的其它问题
类似的话题

我要回帖

更多关于 云讯通官网 的文章

 

随机推荐