我想了解一些使用多线程的高性能服务器程序的问题。Linux下的TCP/UDP高性能服务器
epoll的可以处理TCP套接字监听和插座连接,我可以在主线程中使用epoll_wait,如果有任何套接字连接正在添加,程序可以接受的工作线程的连接和recv数据。工作线程之间没有冲突。我对吗?
udp是一个无连接的协议,我们可以同时在所有工作线程中使用recvfrom函数吗?主线程只是使用epoll通知工作线程接收数据。 (假设我可以单独处理每个UDP数据包)。
这是一个UDP服务器。 我将它设置为无阻塞套接字。我在主线程中接收数据并处理它,然后将它发送到任务队列,如果任务队列有数据,则程序唤醒工作线程并锁定任务队列,然后从任务队列获取数据,解锁任务使其他工作线程可以从任务队列中获取任务,然后进行处理。
这是一个很好的多线程UDP服务器吗?我不确定。 有UDP服务器的另一设计与高性能。
我在这个问题困扰,非常感谢你!
越高越好 –