1.ThreadLocal工作原理
ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据。
在日常开发中用到这个类的地方为:
某些数据是以线程为作用域并且不同线程具有不同的数据副本的时候。
列如:

public class MainActivity extends AppCompatActivity {    private ThreadLocal m = new ThreadLocal<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        m.set("主线程");        m.remove();        new Thread("子线程1") {            @Override            public void run() {                super.run();                m.set("子线程1");                Log.e("子线程1", m.get());            }        }.start();        new Thread("子线程2") {            @Override            public void run() {                super.run();                m.set("子线程2");                Log.e("子线程2", m.get());            }        }.start();        Log.e("主线程", m.get());    }}

结果:
02-15 10:43:01.413 5953-5997/kyle.yee.com.yiaccount E/子线程1: 子线程1
02-15 10:43:01.413 5953-5953/kyle.yee.com.yiaccount E/主线程: 主线程
02-15 10:43:01.414 5953-5998/kyle.yee.com.yiaccount E/子线程2: 子线程2
结论:
相同的对象在不同的类中操作的不同的数据副本。相当于线程自己在操作自己线程的数据。其他线程无法访问。

更多相关文章

  1. android BLE从入门到精通开发
  2. android adapter中到converView机制
  3. Android(安卓)2016年度知名企业公司面试题
  4. 【Android】 开发即时聊天工具 YQ (仿QQ) 教程:目录
  5. 第6章 数据存储
  6. Android(安卓)应用程序分析之Settings
  7. android listview 详解 开发指南
  8. 开发必读:如何成为一名优秀的Android开发者
  9. Android中数据共享机制的实现——ContentProvider的应用从入门到

随机推荐

  1. Android(安卓)所有可访问的权限
  2. Android(安卓)setMovementMethod() 方法
  3. Android(安卓)音视频该如何学习?
  4. Android相关经验积累总结
  5. Android(安卓)获取屏幕宽度、高度、dpi等
  6. 使用sencha cmd创建android应用
  7. Android中判断网络连接是否可用及监控网
  8. Android输入法的显示或隐藏
  9. android 小游戏 ---- 数独(二)
  10. 反编译并修复过的手写识别类--(android 搜