1、前言
昨天总结了一下Linux下网络编程“惊群”现象,给出Nginx处理惊群的方法,使用互斥锁。为例发挥多核的优势,目前常见的网络编程模型就是多进程或多线程,根据accpet的位置,分为如下场景:
(1)单进程或线程创建socket,并进行listen和accept,接收到连接后创建进程和线程处理连接
(2)单进程或线程创建socket,并进行listen,预先创建好多个工作进程或线程accept()在同一个服务器套接字、
 
                      
这两种模型解充分发挥了多核CPU的优势,虽然可以做到线程和CPU核绑定,但都会存在:
- 单一listener工作进程胡线程在高速的连接接入处理时会成为瓶颈 
- 多个线程之间竞争获取服务套接字 
- 缓存行跳跃 
- 很难做到CPU之间的负载均衡 
- 随着核数的扩展,性能并没有随着提升 
参考:
        		延伸阅读
        		
        			
        			
 学习是年轻人改变自己的最好方式
学习是年轻人改变自己的最好方式