From f86b81226548112906d266b8630cbbde4798d517 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Fri, 7 Aug 2020 09:38:52 +0800 Subject: [PATCH] =?UTF-8?q?Update=20Handler=20=E6=B6=88=E6=81=AF=E6=9C=BA?= =?UTF-8?q?=E5=88=B6.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blogs/Android/Handler 消息机制.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blogs/Android/Handler 消息机制.md b/blogs/Android/Handler 消息机制.md index 8a5726d..6852e4f 100644 --- a/blogs/Android/Handler 消息机制.md +++ b/blogs/Android/Handler 消息机制.md @@ -687,7 +687,7 @@ void Looper::rebuildEpollLocked() { Linux 系统的 epoll 机制是为了同时监听多个文件描述符的 IO 读写事件而设计的,它是一个多路复用 IO 接口,类似于 Linux 系统的 select 机制,但是它是 select 机制的增强版。如果一个 epoll 实例监听了大量的文件描述符的 IO 读写事件,但是只有少量的文件描述符是活跃的,那么这个 epoll 实例可以显著减少 CPU 的使用率,从而提高系统的并发处理能力。 -可以前面所创建的 epoll 实例只监听了一个文件描述符的 IO 写事件,这值得使用 epoll 机制来实现嘛?其实,以后我们还可以调用 C++ 层的 Looper 类的成员函数 addFd 向这个 epoll 实例中注册更多的文件描述符,以便可以监听它们的 IO 读写事件,这样就可以充分利用一个线程的消息循环来做其他事情了。在后面分析 Android 应用程序的键盘消息处理机制时,我们就会看到 C++ 层的 Looper 类的成员函数 addFd 的使用场景。 +可是前面所创建的 epoll 实例只监听了一个文件描述符的 IO 写事件,这值得使用 epoll 机制来实现嘛?其实,以后我们还可以调用 C++ 层的 Looper 类的成员函数 addFd 向这个 epoll 实例中注册更多的文件描述符,以便可以监听它们的 IO 读写事件,这样就可以充分利用一个线程的消息循环来做其他事情了。在后面分析 Android 应用程序的键盘消息处理机制时,我们就会看到 C++ 层的 Looper 类的成员函数 addFd 的使用场景。 在看 MessageQueue 的 next 方法: