- 博客(14)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
转载 Unix/Linux中的read和write函数
文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或create返回的文件描述符表示该文件,将其作为参数传给read或write函数。write函数 write函数定义如下:#include ssize_t write(int fil
2016-07-31 18:38:51 9333
转载 Linux中的线程局部存储(一)
转载请说明出处:http://blog.csdn.net/cywosp/article/details/26469435 在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同一变量的多线程读写问题,大多情况下遇到这类问题都是通过锁机制来处理,但这对程序的性能带来了很大的影响,当然对于那些系统原生支持原子操作的数据类型来说,我们可以使用原子操作来处理,这能对程序的性能会得
2016-07-31 17:58:53 1410
转载 fork()函数与Linux中的多线程编程
转载请说明出处:http://blog.csdn.net/cywosp/article/details/27316803一、fork()函数 在操作系统的基本概念中进程是程序的一次执行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位)。在Linux系统中创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程)。系统调用函数f
2016-07-30 18:25:08 291
转载 netstat详解
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Re
2016-07-30 15:14:26 3595
转载 Observer观察者模式
Observer观察者模式作用:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己UML图:Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个借口,可以增加和删
2016-07-24 17:24:53 309
转载 C++中的RAII机制
1.概念Resource Acquisition Is Initialization 机制是Bjarne Stroustrup首先提出的。要解决的是这样一个问题:在C++中,如果在这个程序段结束时需要完成一些资源释放工作,那么正常情况下自然是没有什么问题,但是当一个异常抛出时,释放资源的语句就不会被执行。于是Bjarne Stroustrup就想到确保能运行资源释放代码的地方就是在这个程序
2016-07-24 16:15:12 329
转载 使用c++简单实现reactor模式
转载地址:http://blog.csdn.net/baidu20008/article/details/41378761事件驱动模型广泛地应用于高性能的web服务器中。而相对应的事件处理模式,最为典型的就是Reactor模式(中文可以称作“反应器” “反应堆”等等,各种叫法都不一样,估且就使用英文吧,叫它Reactor模式)和Proactor模式(中文也称“主动器” “前摄器”,同前者一样称
2016-07-20 08:52:08 5449
转载 基于时间轮的定时器设计
转载地址:http://www.cnblogs.com/zhanghairong/p/3757656.html在开发高性能服务器中,定时器总是不可或缺的。 常见的定时器实现三种,分别是:排序链表,最小堆,时间轮。 之前用的定时器是基于最小堆的,在定时器数量不多时可以使用, 目前公司用的框架中的定时器是基于简单时间轮的,但是为了支持大范围的时间,每个齿轮的所维护的链表为有序链表,每次插入时先
2016-07-20 08:48:47 4215
转载 最小堆定时器的实现以及与网络编程中的多路IO复用的应用
转载地址:http://blog.csdn.net/w616589292/article/details/45694987在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用Linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。本文在应用层实现了一个基于时间堆的高性能定时器,同时考虑到定时的
2016-07-19 17:03:42 1011
转载 Reactor模式及在DSS中的体现
转载地址:http://www.cnblogs.com/MikeZhang/archive/2012/08/16/ReactorPattern20120815.htmlReactor模式是处理并发I/O比较常见的一种模式,用于同步I/O,中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程阻塞在多路复用器上;一旦有I/O事件到来或是准备就绪(区别在于多路复用器是边
2016-07-19 14:00:05 705
转载 linux网络编程之-----多播(组播)编程
转载地址:http://blog.csdn.net/jmq_0000/article/details/7095727最近用到组播就看看,算是比较好的,但是有些属性没有在例子中很少的阐述,稍有欠缺。后期有时间我这里会相应的完整更新下。什么是多播 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,
2016-07-18 16:51:53 560
转载 getsockopt()和setsockopt()函数详解
功能描述:获取或者设置与某个套接字关联的选项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#inclu
2016-07-15 09:09:18 8778 1
转载 STL插入排序std::upper_bound和std::lower_bound的使用,以及通用排序类
转载地址:http://blog.chinaunix.net/uid-22145625-id-3864291.html1.使用vector进行排序插入 如果我们有个vector容器,如std::vector vMyVec,里面现在已经有1,3,5,7, 四个元素,现在需要往1,3之间插入2这个元素,那怎么办呢,更或者vector里面是个自定义的类型,需要做这种插入操作,那可以
2016-07-08 17:03:53 2589
转载 非阻塞同步算法与CAS(Compare and Swap)无锁算法
转载地址:http://www.cnblogs.com/Mainz/p/3546347.html锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。操作系统对
2016-07-04 09:11:45 802
C++析构函数是怎么出来的?
2015-12-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人