我正在使用 libev 编写 tcp 服务器。我在listen()之后创建套接字并分叉,然后在监听套接字上启动一个libev读取观察器并在观察器回调中接收客户端连接。可能是这样的情况,当两个孩子和父母(或者两个孩子,如果有多个)收到监听套接字变得可读的事件并且两者都将尝试接受()客户端连接,在这种情况下,其中一个进程将阻塞?我编写了测试程序,似乎只有一个进程接收到 read-ready 事件,但也许我错了?在这种情况下,我可以在哪里阅读有关系统行为的信息?内核如何在进程之间进行负载平衡并决定谁将接收事件?它是后端(选择、epoll 等)和/或特定于操作系统的吗?
问问题
102 次