- 博客(14)
- 资源 (4)
- 收藏
- 关注
转载 Boost coroutine 协程
摘要: 本文介绍协程的基本概念,以及协程在异步IO编程模式里起的作用——大大简化异步回调的实现与逻辑处理。什么协程协程这个概念在计算机科学里算是一个老概念了,随着现代计算机语言与多核心处理器的普及,似乎也有普及之势。协程是与例程相对而言的。熟悉C/C++语言的人都知道,一个例程也就是一个函数。当我们调用一个函数时,执行流程进入函数;当函数执行完成后,执行流程返回给上层函数或
2014-01-16 20:46:32
5902
原创 boost::timer
namespace boost {// timer -------------------------------------------------------------------//// A timer object measures elapsed time.// It is recommended that implementations measure wall
2014-01-10 19:38:38
777
原创 C++ 智能指针shared-ptr,unique_ptr和weak-ptr
C++11中的智能指针在C++11中有四种只能指针,auto_ptr,shared-ptr,unique_ptr和weak-ptr。其中auto_ptr有和多不足之处,在C++11中已经建议废弃使用。shared_ptr类智能指针也是模板。所以创建智能指针时要提供其指向的指针类型:shared_ptrp1; //指向stringshared_ptr>p2 //指向int的lis
2013-11-07 17:24:52
1752
转载 windows信号量
信号量(Semaphore)内核对象对线程的同步方式与前面几种方法不同,它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。在用CreateSemaphore()创建信号量时即要同时指出允许的最大资源计数和当前可用资源计数。一般是将当前可用资源计数设置为最大资源计数,每增加一个线程对共享资源的访问,当前可用资源计数就会减1,只要当前可用资源计数是大于0的,就可以发
2013-02-22 18:10:22
483
原创 C++构造函数之深拷贝与浅拷贝
如果没有自定义复制构造函数,则系统会创建默认的复制构造函数,但系统创建的默认复制构造函数只会执行“浅拷贝”,即将被拷贝对象的数据成员的值一一赋值给新创建的对象,若该类的数据成员中有指针成员,则会使得新的对象的指针所指向的地址与被拷贝对象的指针所指向的地址相同,delete该指针时则会导致两次重复delete而出错。下面是示例://animal.h#include#includ
2013-01-21 10:46:59
442
原创 winsock Select模型
Windows在非阻塞和阻塞模式下执行I/O操作。在阻塞模式下TCP对一个IP的端口只能执行完一个客户的请求才能处理下一个请求,各个请求之间排队按顺序执行,这就是同步。异步就是同时来两个或者多个请求,服务器就同时相应多个客户端。它们是并行执行的。在阻塞模式和单线程下若一个I/O操作被阻塞那么整个程序都会被阻塞,如果条件不满足程序就会永远被锁死。一下代码创建一个套节字并将其置为非
2013-01-21 10:38:11
1134
原创 winsock
Winsock的服务是以动态链接库Winsock DLL形式实现的,所以必须条用WSAStartup函数对Winsock DLL进行初始化,协商Winsock的版本支持,并分配必要资源初始化 Winsock DLL的调用int WSAStartup ( WORD wVersionRequested,//指定Winsock的版本,高位字节为副版本,低位字节为主版本
2013-01-20 15:47:02
882
原创 winsock编程j接口
int WSAStartup ( WORD wVersionRequested,//指定Winsock的版本,高位字节为副版本,低位字节为主版本 //用宏MAKEWORD(X,Y)X高字节,Y低字节获得该参数正确是值 LPWSADATA lpWSAData //指向LPWSADATA的结构体的指针,该结构包含了加载库版
2013-01-20 15:38:49
901
转载 C/C++中函数参数传递详解
对比两种传递方式:按值传递变量,需要有复制实参内存以初始化形参,所以这将带来一些开销。在讨论简单变量时,内置的类型(如int、float)的开销可以忽略不计,但对于大型的对象(如代表整个3D世界的大对象)来说,复制的代价会很高昂。C语言也提供了一种指针式的“按值传递”,也可以解决传递大对象时代价过高的问题,然而“指针”由于安全问题一直为众多程序员所诟病。故而C++又提供了一个按引用传递。
2013-01-20 15:22:14
667
转载 怎样成为专家
什么是“专家”?成为“专家”需要多长时间?在我开始讨论如何成为一名专家之前,我们一起来花上30秒时间,看看专家的定义,还有成为专家需要多长时间?在使用某一技能三个月后,你还不是专家,即便使用时间是三年,你还不是。马尔科姆·格莱德威尔在《异类》一书中指出,成为一名真正的专家,需要10000小时。10000小时!如果一天用10小时,每天都学习,则大概需要3年时间。如果一天5小时,一年学
2013-01-11 22:30:30
829
1
转载 理解双指针
对于C语言的参数传递都是值传递,当传传递一个指针给函数的时,其实质上还是值传递,除非使用双指针。 在讲双指针之前,还是先讲讲关于C语言函数调用的本质。函 数调用操作包括从一块代码到另一块代码之间的双向数据传递和执行控制转移。数据传递通过函数参数和返回值来进行,包括局部变量的空间分配与回收,都是通过 栈来实现的。绝大多数CPU上的程序实现使用栈来支持函数调用操作。
2012-12-20 12:31:24
767
原创 单链表
没啥说的,最重要的是在操作链表时要画图//linkList.h#ifndef _LINKLIST_H_#define _LINKLIST_H_#include#include//LLNode是struct linkListNode类型,pNode是struct linkListNode*类型typedef struct linkListNode{ int data;
2012-12-20 12:30:02
459
原创 二叉树
递归定义:树(Tree)是n(n>=0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件: 1)有且仅有一个特定的称为根(Root)的结点; 2)其余的结点可分为m(m>=0)个互不相交的子集T1,T2,T3…Tm,其中每个子集又是一棵树,并称其为子树(Subtree)。树的基本术语:根 —树中唯一没有前驱的结点。度
2012-12-18 21:07:45
465
转载 Boost多线程配置
12345678910111213141516171819202122232425#include #include #include
2012-12-17 21:30:21
474
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人