自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 windows critical section (关键段)

不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它进行访问。每个线程中访问临界资源的那段代码称为临界区(Critical Section)。  每个线程中访问临界资源的那段程序称为临界区(Critical Section)(临界资源是一次仅允许一个线程使用的共享资源)。每次只准许一个线程进入临界区,进入后不允许其他线程进入。不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它

2011-06-30 23:57:00 3326

原创 原子访问--- Interlocked系列函数

我们都知道,windows是一个抢占式的多线程环境,因此系统可能会在任意时刻暂停一个线程,切换到另一个线程让新的线程继续执行。请看这段代码: // Interlocked.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace std;DWORD WI

2011-06-30 14:49:00 864

原创 关于windows 伪句柄

      《windows核心编程》里提到了“伪句柄”一词,故名思议,它并不是真的句柄,有时候不会达到你想要的效果。边看代码,边解释代码如下:    // 伪句柄.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;

2011-06-27 16:59:00 1490

原创 references count 以及copy on write

   产生一个reference-counted String class 并不困难,但是必须注意许多细节。  比如 copy-on-write         Pointers,References,以及copy-on-Write         考虑以下代码:         String s1 = "hello";         char *p =&s1[1];

2011-06-09 16:34:00 576

原创 C++ Smart Pointers 和“与继承有关的”类型转换

     我们真正想要知道的是如何能够使“smart pointer classes的行为”在“与继承相关的类型转换”上,能够和dumb pointers一样。答案很简单:不能够。Daniel Edelson 指出:smart pointers虽然smart,却不是pointers。是的,我们所能做的最好情况就是使用member templates来产生转换函数,然后再在其中出现模棱两可的时候使用

2011-06-07 22:23:00 735

原创 C++ virtual constructors virtual copy constructors 以及non-memeber functions的行为虚化

   C++中,所谓的 virtual constructors是某种函数,视其获得的输入,可产生不同类型的对象。-----《more effective c++》  virtual constructors 在许多情况下有要有用,其中之一就是从磁盘读取对象信息。    下面是一个小实例,比如,我在项目的根目录下,新建一个文本文件 a1.txt,文件中的内容是(Derone,Der

2011-06-06 19:49:00 797

原创 More effective c++ 11(禁止异常(exceptions)流出destructors之外)

<br />    当对象被exception处理机制------也就是exception传播过程中的stack------unwinding(栈展开)机制-----销毁。<br />    当destructor被调用时,可能有一个exception正在作用之中。可惜的是我们无法在destructor内区分这些状态。于是,必须在保守的假设下(假设当时有个exception正在作用中)撰写你的destructors。因为如果控制权基于exception的因素离开destructor。而此时正有另一个exce

2011-06-01 23:30:00 1182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除