首页 › 月度存档 › 12 月 2014

C++简单链表实现

以下为LinkList.h文件代码
继续阅读 »

Linux下基于TCP多线程服务与客户的实现

本例子是本人Linux下基于TCP多线程Socket编程的第二个例子,本例子是用C++实现的
服务器采用了面向对象的多线程,用到了队列与链表,信号量(操作系统中叫PV操作)
本例子中的队列与链表源代码在前面可以找到,这里就不多贴了
此系统所支持的自定义命令跟上个例子相同,就里就不多说明了
继续阅读 »

Linux下用C++实现支持任何类型的TList链表

以下为tlist.h文件代码
继续阅读 »

C++的类型转换:static_cast、dynamic_cast、reinterpret_cast

C 风格(C-style)强制转型如下:

(T) exdivssion // cast exdivssion to be of type T

函数风格(Function-style)强制转型使用这样的语法:

T(exdivssion) // cast exdivssion to be of type T

这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。

使用标准C++的类型转换符:static_cast、dynamic_cast、reinterdivt_cast、和const_cast。
继续阅读 »

Linux下 基于模板的C++多线程安全队列

继续阅读 »

一个简单的linux线程池

线程池:简单地说,线程池 就是预先创建好一批线程,方便、快速地处理收到的业务。比起传统的到来一个任务,即时创建一个线程来处理,节省了线程的创建和回收的开销,响应更快,效率更高。
继续阅读 »

高性能、高并发TCP服务器(多线程调用libevent)

本文讲述的TCP服务器是模仿memcache中的TCP网络处理框架,其中是基于libevent网络库的。

主线程只处理监听客户端的连接请求,并将请求平均分配给子线程。

子线程处理与客户端的连接以及相关业务。

每个子线程有一个“连接”队列。每个“连接”有一个“反馈”队列。

先上个流程图,要上班了,以后再解释。代码以后再上···
继续阅读 »

sysconf 获取计算机参数

头文件
#include<unistd.h>

函数原型
long sysconf(int name);
继续阅读 »

epoll入门

epoll用到的所有函数都是在头文件sys/epoll.h中声明的,下面简要说明所用到的数据结构和函数:
所用到的数据结构

继续阅读 »

RAII:C++资源管理的利器(转)

RAII惯用法:C++资源管理的利器

RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。
继续阅读 »