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

发布于 2021-02-01 17:54:03

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

关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    是的,您可以accept()从多个线程和多个进程调用同一个侦听套接字,尽管指向它的指向可能不如您想象的那么多。内核将只允许一个成功。当使用进程完成此操作时,这称为预分支,并且fork()为每个新连接节省了a的开销。但是,当您处理线程时,可以更轻松地拥有一个等待新连接队列的现有线程池。一个线程执行accept并写入队列,而工作线程读取队列并执行其操作。它更干净,这是一个很好理解的模式,您几乎一无所获。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看