安卓学习14

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

posted @ 2021-03-14 00:20  潘福龙  阅读(22)  评论(0编辑  收藏  举报