Java中的基础阻塞队列

摘要
  1. 分析ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue、DelayQueue五种队列;

  2. Executors创建的3种类型的ThreadPoolExecutor(FixedThreadPool、SingleThreadExecutor、CachedThreadPool)的executor()方法说明;

  3. Executors创建的2种类型的ScheduledThreadPoolExecutor(ScheduledThreadPoolExecutor、SingleThreadScheduledExecutor)的分析。

阅读更多

深入理解Handler

摘要

1.Android提供Handler的原因?

答:Android规定访问UI只能通过主线程,如果子线程访问UI,程序会抛出异常;ViewRootImpl在checkThread方法中做了判断。

2.系统为什么不允许在子线程中去访问UI?

答:因为Android的UI控件不是线程安全的,多线程并发访问可能会导致UI控件处于不可预期的状态,为什么不加锁?因为加锁机制会让UI访问逻辑变得复杂;其次锁机制会降低UI访问的效率,因为锁机制会阻塞某些线程的执行。所以Android采用了高效的单线程模型来处理UI操作。

阅读更多