1.前言
Android中非UI线程(WorkThread)不能操作UI线程(MainThread)
handler 发送Message 给MessageQueue,Looper 来轮询消息,如果有Message,然后再发送给Handler,Handler 拿到消息就可以所在的线程执行了。
2.ThreadLocal
Thread这个类有一个变量:ThreadLocal.ThreadLocalMap threadLocals ,这是一个map的数据结构,里面的元素的key就是ThreadLocal,value就是我们自定义的一些目标类。我们可以在自己的多线程类中定义好几个ThreadLocal,然后每一个ThreadLocal put一个特定的目标类,然后以后可以用ThreadLocal get到目标类(用自己作为Thread里map的key),因为每个Thread有自己独自的map,所以这样可以实现每个线程有自己的LocalThread,并且一个Thread里可以有多个LocalThread。