- 博客(7)
- 收藏
- 关注
转载 深度理解select、poll和epoll
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。select()和p...
2018-02-24 11:43:04 193
转载 Linux IO流程
1.概述阐述之前,要先有个大视角,让我们站在万米高空,鸟瞰我们的文件IO,它们设计是分层的,分层有2个好处,一是架构清晰,二是解耦。让我们看一下下面这张图。程序的最终目的是要把数据写到磁盘上, 但是系统从通用性和性能角度,尽量提供一个折中的方案来保证这些。让我们来看一个最常用的写文件典型example,也是路径最长的IO。{ char *buf = malloc(MAX_BUF_SIZ...
2018-02-24 09:26:37 3092
转载 c++异常处理
C++中异常处理的基本思想及throw语句抛出异常的使用转载 2016-03-14 作者:YoferZhang 我要评论这篇文章主要介绍了C++中异常处理的基本思想及throw类抛出异常的使用,也深入谈到了异常被抛出后的栈解旋unwinding过程,需要的朋友可以参考下异常处理基本思想C++的异常处理的基本思想大致可以概括为传统错误处理机制、通过函数返回值来处理错误。1)C++的异常处...
2018-02-13 18:03:34 153
转载 构造函数为什么不能是虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那...
2018-02-11 11:00:21 105
转载 析构函数为什么要定义为虚函数
注:本文内容来源于zhice163博文,感谢作者的整理。1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html a.第一段代码 #include<iostream>using name...
2018-02-11 10:58:28 1709
原创 系统问题定位总结
1、问题的描述:在ipran的组网环境中,设备之间建立LDP会话(MPLS转发中分发标签的协议),在其中的一台设备中灌入3kospf路由和3k LDP标签协议,设备会生成3k条lsp,由于设备容量问题,只会生成2k条LDP LSP,设备容量达到上限。然后设备进行HA倒换(高可靠性),主备板卡需要平滑数据,LDP会建立gr-lsp。在这个过程中,会存在有的设备经过LDP GR后业务不通,路由转发也不...
2018-02-10 11:28:12 357
转载 泛型算法
原文地址:https://www.cnblogs.com/ForFreeDom/archive/2012/05/08/2489689.html一、概述: 1.因为它们实现共同的操作,所以称之为“算法”;而“泛型”指的是它们可以操作在多种容器类型上——不但可作用于 vector 或list 这些标准库类型,还可用在内置数组类型、甚至其他类型的序列上,这些我们将在本章的后
2018-02-06 19:45:47 314
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人