使用RT-linux调度的多个TCP套接字

使用RT-linux调度的多个TCP套接字,linux,multithreading,tcp,Linux,Multithreading,Tcp,如果我使用SCHED_FIFO并将进程优先级设置为1,如何有效地检查进程正在管理的多个tcp连接中的一个是否有数据可供处理 理想情况下,如果多个tcp套接字具有可供处理的数据,我希望使用多线程 我认为它看起来像是一个检查每个套接字的无限循环,但似乎linux调度器可能有一个解决方案 不确定SCHED_FIFO如何影响您的传统服务器设计。我指的是监听套接字和accept返回的套接字的用法。其思想是,主线程应该在侦听套接字上阻塞,当接收到新连接时,它应该将accept返回的fd传递给新线程。可以为所

如果我使用
SCHED_FIFO
并将进程优先级设置为1,如何有效地检查进程正在管理的多个tcp连接中的一个是否有数据可供处理

理想情况下,如果多个tcp套接字具有可供处理的数据,我希望使用多线程


我认为它看起来像是一个检查每个套接字的无限循环,但似乎linux调度器可能有一个解决方案

不确定SCHED_FIFO如何影响您的传统服务器设计。我指的是监听套接字和accept返回的套接字的用法。其思想是,主线程应该在侦听套接字上阻塞,当接收到新连接时,它应该将accept返回的fd传递给新线程。可以为所有新连接创建新线程,也可以使用线程池来限制它,以实现更好的控制

另一个想法是使用一个线程在fd上调用select,主线程可以监听并接受连接,主线程可以对新fd进行排队,并向等待select的线程发送通知(可以使用信号或管道)。一旦接收到数据,它就可以使用线程池中的工作线程来分配任务