epoll是通过在内核中创建一个虚拟文件来接收外部数据的
会与用户进程mmap映射同一个物理内存区域
当该文件有数据写入时,则内核会将该FD的消息通过共享内存区域传递给用户进程
#include <sys..., 则认为还没到处理时间
// 则继续计算下一条消息与现在的时间间隔, 重新进入epoll
nextPollTimeoutMillis...idler返回值为false的话,那么就会移除掉该Handler
// 即如果在queueIdle中返回false,则只会响应一次...例如, 当前主线程中有A->B->C->D->E五个消息, 而当E需要高优执行的时候(其实就是Android中的VSync重绘任务), 其中A为SyncBarrier, 则当轮到A执行的时候, MessageQueue..., 如果为空则认为是插入了SyncBarrier, 就开始遍历寻找链表中Asynchronous的消息, 找到了就会返回这条消息,同时使用这条消息计算timeoutMillies来唤醒线程处理.