Skip to content

chenBright/tinyWS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tinyWS

A C++ Tiny Web Server

版本

  • 多线程版本
  • 多进程版本
    • 版本1:父进程负责 listen 和 accept 连接,子进程负责连接的读写处理。
    • 版本2:所有进程监听同一个 listen sockfd,accept 到新的连接后自己处理连接的读写。所有进程通过竞争设置了PTHREAD_PROCESS_SHARED属性的mutex来获取处理 listen sockfd 的机会,保证了同一时刻只有一个进程监听 listen sockfd 的 IO 事件(只有读事件),解决了惊群问题

测试

版本 短连接QPS 长连接QPS
多线程 8377 31325
多进程1 7650 30828
多进程2 7638 30608

可以看出,处理请求数方面,长连接比短连接能很多,大概多了 4 倍。