我可以同时从几个线程调用一个套接字的accept()吗?

我正在使用Linux 3.2.0,x86_64。 我可以同时从几个线程调用一个套接字的accept()吗?

Solutions Collecting From Web of "我可以同时从几个线程调用一个套接字的accept()吗?"

是的,你可以在多线程和多进程的同一个监听套接字上调用accept() ,尽管可能没有你想象的那么多。 内核只允许一个成功。 当这个过程完成时,它被称为预分叉,它为每个新连接节省了fork()的开销。 但是当你处理线程的时候,你可以更容易地拥有一个等待新连接队列的现有线程池。 一个线程执行accept并写入队列,并且工作线程读取队列并执行其操作。 它更干净,它是一个很好理解的模式,你几乎没有任何损失。