一、多线程这里项目源代码:threadpool.h
每一个线程与一个eventPoll对应;
二、可能问题
面试中可能会被问到的几个问题:
1、
三、Reactor 和 Proactor的区别
1、前置知识:
2、Reactor是非阻塞的同步网络模式,Proactor是异步网络模式。
(1)阻塞I/O
用户程序执行I/O时,内核未把数据准备好,并且未将数据从内核缓冲区复制到用户缓冲区中,阻塞I/O是在这两个过程等待。
同步就是应用程序需要等待内核。
(2)非阻塞I/O
一直轮询内核数据是否已经准备好了,但是非阻塞I/O只是不等待“内核准备数据的过程”,同样等待“从内核缓冲区复制到用户缓冲区”这个过程。
所以:阻塞I/O跟非阻塞I/O都是同步I/O。
(3)异步I/O
“内核准备数据”与“数据从内核缓冲区复制到用户缓冲区”这两个过程都不用等待。
而Proactor就是异步I/O,应用程序并没有主动发起拷贝动作。
总结: