我们知道Thread中会维护两个ThreadLocalMap,这个时候如果同时存在子父线程,子线程该如何获取父线程ThreadLocal的值
我们使用ThreadLocal能够解决线程局部变量统一定义问题,多线程数据不能共享的问题,使得每一个线程单独维护自己线程内的变量值(set、get、remove)。
Handler是一个优秀的内存共享方案。其内存管理和设计思路相当完整。 通过Handler来通知UI组件更新或者是处理对应消息。那么Handler消息机制是什么?
Android是基于事件驱动的,即所有的不管是Activity、Service生命周期都是通过handler事件驱动的。 那么Handler内部的线程是如何管理而且还能够保证安全。
学习Handler之后,通常会出现同步屏障的字样。MessageQueue管理优先级队列的过程中,如果消息存在一种“紧急”消息, 需要更高的优先级处理,这个时候就需要同步屏障。
开发中我们需要去执行多个任务,且要求按顺序执行。如果使用多线程,有多个任务就多创建几个线程实现,这时候可能出现线程同步的问题。 如果需要管理这些线程,可以考虑使用HandlerThread。
在Android开发中,需要在后台执行异步耗时请求,而且存在很多这种请求,那么怎么管理这些请求。 如果不断的创建线程,本身就非常耗性能,且不易管理,这个时候可以考虑使用IntentService。