多线程服务器的使用场合与常用编程模型
单线程服务器的常见编程模型:
在高性能的网络程序中,使用得最为广泛的是non-blocking IO + IO multiplexing模型,即reactor模式.
在上述模式中,程序的基本结构是一个事件循环,以事件驱动和事件回调的方式实现业务逻辑。基于事件驱动的编程模型也有其本质的缺点,它要求事件回调函数必须是非阻塞的,对于涉及到网络IO的请求响应式协议,它容易割裂业务逻辑,使其散布于多个回调函数之中,相对不容易理解和维护。
多线程服务器的常用编程模型:
one loop per thread:程序里的每个IO线程有一个event loop(reactor),用于处理读写和定时事件.
线程池:用于计算,可配合任务队列使用
进程间通信只用TCP:(明白TCP相比其他IPC的优势)