最初:每个线程处理一个io流
后来:linux支持了select/poll,能够监听文件的读写事件,但并不区分是哪种事件,当需要读操作时,仍然需要遍历所有事件,但仍然比原来的thread-per 好多了O(n)
再后来:当需要监听的文件过多就会很慢。当文件发生读写事件时,将通知epoll,从而处理这些流,复杂度为O(1)
最初:每个线程处理一个io流
后来:linux支持了select/poll,能够监听文件的读写事件,但并不区分是哪种事件,当需要读操作时,仍然需要遍历所有事件,但仍然比原来的thread-per 好多了O(n)
再后来:当需要监听的文件过多就会很慢。当文件发生读写事件时,将通知epoll,从而处理这些流,复杂度为O(1)