linux下的TCP/UDP高性能服务器
我想了解使用多线程的高性能服务器程序的一些问题linux下的TCP/UDP高性能服务器,linux,multithreading,Linux,Multithreading,我想了解使用多线程的高性能服务器程序的一些问题 epoll可以处理TCP套接字监听和套接字连接,我可以在主线程中使用epoll_wait,如果有任何套接字连接提交,程序可以在工作线程中接受连接和recv数据。工作线程之间没有冲突。我说得对吗 udp是一个无连接协议,我们可以在所有工作线程中同时使用recvfrom函数吗?主线程只是使用epoll来通知工作线程接收数据。 (假设我可以单独处理每个UDP数据包) 这是一个UDP服务器。 我设置它与非阻塞插座工作。我在主线程中接收数据并进行处理,然后将
你的基本方法是正确的。从研究这个臭名昭著的问题以及如何克服它开始。一旦了解了各种实现中的主要瓶颈,就需要考虑以下内容作为设计过程的一部分:
- 最小化线程创建/删除周期李>
- 始终选择“基于事件”的模型,而不是阻塞模型
- 加载(并发请求数)
- 系统(CPU、RAM)
由于在实现web服务器设计时这是一个非常常见的问题,您可以通过简单地搜索找到一些分析,如,越高越好