From 6b3f21d1c6f771e7967c8705e92d28bfeadcee87 Mon Sep 17 00:00:00 2001 From: xiehan <52160700+Barenboim@users.noreply.github.com> Date: Mon, 21 Sep 2020 18:22:58 +0800 Subject: [PATCH] Update about-timeout.md --- docs/about-timeout.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/about-timeout.md b/docs/about-timeout.md index 1a721614eb..aa274c1cf6 100644 --- a/docs/about-timeout.md +++ b/docs/about-timeout.md @@ -139,7 +139,7 @@ public: ### 超时功能的实现 -框架内部,需要处理的超时种类比我们在这里展现的还要更多。除了wait_timeout,全都是依赖于Linux的timer_fd,每个epoll线程一个。 -默认配置下,epoll线程数为2,可以满足大多数应用的需要了。 +框架内部,需要处理的超时种类比我们在这里展现的还要更多。除了wait_timeout,全都是依赖于Linux的timerfd或BSD系统kqueue的timer事件。 +每个poller线程包含一个timerfd,默认配置下,poller线程数为4,可以满足大多数应用的需要了。 目前的超时算法利用了链表+红黑树的数据结构,时间复杂度在O(1)和O(logn)之间,其中n为epoll线程的fd数量。 超时处理目前看不是瓶颈所在,因为Linux内核epoll相关调用也是O(logn)时间复杂度,我们把超时都做到O(1)也区别不大。