Thread

extends Thread 和 implements Runable区别
thread通过继承Thread实现的类,类内成员变量是线程间不共享的,是否使用threadLocal无区别。因为每次使用这种类时,都是new新的类。Thread t = new extThread();
thread通过重写runable接口的类,类内成员变量是可以线程间共享的。因为当使用时候类只new了一次。ImplThread it = new ImplThread();Thread t = new Thread(it);

ThreadLocal
可以将类中处于共享内存/主内存的变量,在不同线程中互斥。
原理及内存泄露风险-由于其和thread生命周期同步,key=null而value仍存在,thread结束才会被回收value

Thread中有个成员变量 ThreadLocal.Threadlocalmap类型

Thread.class

该成员变量通过Threadlocal管理赋值,ThreadLocalMap是一个类似hashmap的结构,key为threadlocal实例自身

ThreadLocal$ThreadLocalMap.class
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容