安卓学习14

主线程的死循环一直运行是不是特别消耗CPU资源呢?
这里就涉及到Linux pipe/epoll机制,在主线程的MessageQueue没有消息时,主线程便阻塞在loop的queue.next()中的nativePollOnce()方法里,相当于java层的线程waite机制,此时主线程会释放CPU资源进入休眠状态,直到下个消息到达时调用nativewake,通过往pipe管道写端写入数据来唤醒主线程工作。相当于java层的notify机制,去唤醒主线程,然后处理消息,所以主线程大多数时候都是处于休眠状态,并不会消耗大量CPU资源。

原文地址:https://www.cnblogs.com/092e/p/14916599.html