Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 Linux 3.2.0、x86_64。我可以同时从多个线程为一个套接字调用 accept() 吗?
是的,您可以从多个线程和多个进程调用accept()同一个侦听套接字,尽管它可能没有您想象的那么重要。内核只允许一个成功。当这通过进程完成时,它被称为预分叉,它可以节省fork()每个新连接的费用。但是当您处理线程时,您可以更轻松地拥有一个等待新连接队列的现有线程池。一个线程执行accept并写入队列,工作线程读取队列并执行其操作。它更干净,这是一个很好理解的模式,你几乎没有损失任何东西。
accept()
fork()
accept