240 发简信
IP属地:浙江
  • 你写的关于epoll惊群的问题有些不妥
    1. Linux 4.9之后已经部分修复了epoll的惊群问题,在epoll_ctl时候同时设置EXCLUSIVE标志,内核就会在事件发生的时候只唤醒一个进程或线程,如果设置ET模式,这时候是不会存在惊群问题的。
    2.之所以说Linux4.9部分解决这个问题,是因为LT模式导致的,因为在LT模式下,如果有时间发生,内核会唤醒进程去处理,然而如果这个处理进程并没有立即处理这个事件,那么内核会唤起其他进程处理这个事件,这时候就导致了惊群。原因是因为LT模式下内核不会立即将事件从rdlist中取出,而是在其处理完之后再移除rdlist。
    你的代码如果要发生惊群的话应该把sleep(2)打开,然后用默认的LT模式。

    关于linux中select和epoll是否存在惊群效应的争执

    亲测,先给出结论:select不存在惊群效应,每次来一个socket消息,只有一个消费进程被唤醒。e_poll存在惊群效应,每次来一个socket连接请求,处于空闲状态的消费...

  • 关于boost库性能与安全的一些总结

    最近工作上遇到几个问题都与boost库有关,所以做一下简单的总结。1.多线程环境使用boost库引起的crash项目中使用到boost::filesystem::is_reg...

  • STL六大组件

    提到STL,可能很多同学的第一反应就是vector,stack,queue。。。,然而这只是STL一部分而已,STL主要分为六大组件。 1.容器 容器就是我们常见的各种数据结...

  • C++ 顶层const与底层const总结

    C++中顶层const与底层const在使用中区分还是挺大的,比较容易搞混,所以单独总结一下。 1.什么是顶层const与底层const 简单的说顶层const就是const...

  • 关于网络编程的一些概念

    刚开始接触网络编程的时候对一些常见的概念常常混淆,究其原因还是没有能够真正理解。随着实践加深,对概念理解也相对深一点,所以把那些比较容易混淆的概念总结一下,希望能够帮助到那些...

  • google glog使用方法及简单封装

    http://blog.csdn.net/tgxallen/article/details/75194824

  • 120
    windows IOCP完成端口实用详解

    开篇之前先放上本次讲的IOCP project github地址:这里 。这个project中包含了IOCP和select,各自封装成一个动态链接库,可以直接使用。同时项目配...

  • windows DLL共享变量

    在Windows中同一个dll或者可执行文件的多个实例之间的全局静态变量是独立的(Linux中动态链接库可以共享全局变量的),不存在共享全局或者静态变量,这样的设计是为了安全...

  • python 字典处理的一些坑

    问题背景:这两天用python做大数据处理,抽取每个文本单词,进行统计排序。数据大概有2000万个,利用python多进程处理。数据同步用的python多进程通信中比较常使用...

  • SO_REUSEADDR在Linux和Windows的区别SO_LINGER的作用

    SO_REUSEADDR 有过网络编程经验的人肯定都会遇到过关于 SO_REUSEADDR socket选项的问题。 问题背景:在socket编程中当我们调用closesoc...