美文网首页服务器开发
惊群效应中epoll_create一定要在fork之后

惊群效应中epoll_create一定要在fork之后

作者: 爱吃花栗鼠的猫 | 来源:发表于2017-04-17 23:12 被阅读78次

背景

多进程单线程epoll程序,惊群问题是绕不开的,即使内核替你解决了accept的惊群问题,epoll的还是需要用户自己解决,这个事情不应该由内核管,它也管不了。

我在测试中发现,epoll_create的创建工作,一定要在fork之后,否则就出现串线现象,就是a进程accept后新建的socket连接,等到下次触发in事件时,就串到b进程中了,这个很好测试,可以先开两个进程,挂载上去一试便知。

后来我把epoll_create的位置放在fork之后,发现没有这个现象了

分析

为什么会有这个现象?

其实我真的没有想明白,我即使是在fork之前创建,可是fork之后,子进程是复制了父进程的资源,那么对应的epoll句柄也应该是复制的啊,现在出现了串线现象,说明子进程并不是复制了父进程的资源,而是共享了父进程的资源

相关文章

  • 惊群效应中epoll_create一定要在fork之后

    背景 多进程单线程epoll程序,惊群问题是绕不开的,即使内核替你解决了accept的惊群问题,epoll的还是需...

  • 惊群效应(转载)

    目录 高并发中的惊群效应 1.惊群效应简介 操作系统的惊群 惊群的坏处 3.1 坏处 3.2 其他 4 惊群的几种...

  • nginx如何解决惊群效应

    本文主要内容包括惊群效应简介、nginx如何解决惊群和一个仿照nginx避免惊群效应的简单例子 惊群效应 惊群简单...

  • 惊群效应

    1. Linux惊群效应 多线程或多进程在同时阻塞等待一个事件而处于休眠态时,如果等待的事件发生,则去唤醒了所有的...

  • 网络编程"惊群"问题

    1、惊群效应(thundering herd) 什么是惊群效应惊群现象就是多进程(多线程)在同时阻塞等待同一个事件...

  • 关于惊群效应

    什么是惊群,这篇文章写的很好:举一个很简单的例子,当你往一群鸽子中间扔一块食物,虽然最终只有一个鸽子抢到食物,但所...

  • 惊群效应理解

    惊群: 多个进程或者线程阻塞等待同一个事件,当事件到来,多线程或者多进程同时被唤醒,只有一个线程或进程获得资源。 ...

  • nginx的惊群效应

    什么是惊群效应:惊群效应(thundering herd)是指多进程(多线程)在同时阻塞等待同一个事件的时候(休眠...

  • epoll_wait 源代码分析

    在io多路复用中,有三个主要操作。 epoll_create 接口描述 int epoll_create(int ...

  • 多进程知识点总结1

    1.fork函数 此处需要注意的是 当调用fork方法 ,之后的代码会运行两次os 中的fork只能在liunx中...

网友评论

    本文标题:惊群效应中epoll_create一定要在fork之后

    本文链接:https://www.haomeiwen.com/subject/efmxzttx.html