android 并发编程 线程间通信3种

1.使用管道流  一条管道为两个线程建立一条单向通道  一条是创造者,一条是消费者

2.多个线程访问同一块内存 但是要注意线程同步的问题

3.使用handler和message 1个线程对应一个looper ,1个looper持有一个messagequene,1个looper可以与多个handler绑定,1个messagequene可以包含多个message

 

android线程间的通信机制就是handler+looper+message+messagequene

AsyncTask的execute(Params...)执行方法只能执行一次,就是一个实例只能执行一次,执行多次会出现异常。需要说明AsyncTask不能完全取代线程,在一些逻辑较为复杂或者需要在后台反复执行的逻辑就可能需要线程来实现了

 

Looper:一个线程产生一个Looper,由它来管理此线程的messageQuene

Handler:可以构造handler与looper沟通,push消息到消息队列,从消息队列取出message

messageQuene:用来存放message

UI线程:android应用启动的时候会建立一个MessageQuene

 

 

你可能感兴趣的:(android)