06 2012 档案
摘要:placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下:void *operator new( size_t, void *p ) throw() { return p; }首先我们区分下几个容易混淆的关键词:new、operator new、placement new new和delete操作符我们应该都用过,它们是对堆中的内存进行申请和释放,而这两个都是不能被重载的。要实现不同的内存分配行为,需要重载operator new,而不
阅读全文
摘要:在Win32平台上进行多线程编程,常会用到锁。下边用C++实现了互斥对象(Mutex)锁和临界区(CRITICAL_SECTION)锁,以加深理解和今后方便使用。代码已在VS2005环境下编译测试通过。Lock.h[cpp] view plaincopyprint?#ifndef_Lock_H #define_Lock_H #include<windows.h> //锁接口类 classILock{public:virtual~ILock(){}virtualvoidLock()const=0;virtualvoidUnlock()const=0;};//互斥对象锁类 classM
阅读全文
摘要:头文件 #include 定义函数 int sscanf (const char *str,const char * format,........); 函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。 返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败 否则,表示正确格式化数据的个数 例如:sscanf(str,"%d%d%s", &i,&i2, &s); 如果三个变成都读入成功会返回3。 如果只读入了第
阅读全文
摘要:某日一朋友写了一个HELLO WORLD代码,出不来结果,代码如下:#include <stdio.h> int main(int argc, char **argv){ printf("hello world!"); _Exit(0); } 注意到,在代码中printf语句打印的字符串最后没有带换行符,而且最后调用了_Exit函数,这导致了在终端屏幕上显示不出来字符串"hello world!"。 首先介绍一下UNIX里面关于标准IO的几种缓冲机制: 1、全缓冲 。全缓冲指的是系统在填满标准IO缓冲区之后才进行实际的IO操作;注意,对于驻留
阅读全文
摘要:一、沙箱和安全策略问题 1、此问题发生在连接时,准确地说是连接前,分别两种情况: 1.本地播放 本地播放时,默认情况下Flash Player将不允许swf访问任何网络。 访问http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html,将swf加入到许可列表,即可解除限制。 2.WEB发布 发布在WEB上的swf, 将可能面临跨域的问题。 2、Flash中的通信方式有两种: 1.HTTP方式:如URLLoader等用于加载远程swf、文件...
阅读全文
摘要:线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。既然线程作为程序执行流的最小单元,那么在Windows中,是怎样管理和调度线程的呢?在Windows NT以后,Windows实现了一个基于优先级的抢先式多处理器调度系统。调度系统总是运行优先级最高的就绪线程。通常线程可在任何可用处理器上运行,但也可限制某线程只能在某处理器上运行。先看一下优先级是怎么划分的
阅读全文
摘要:Windows是一款微内核、抢占式多任务、软实时的操作系统。Windows的任务调度主要以线程为单位进行,线程拥有33个优先级,数值为0~32,其中0为最低优先级,32为最高优先级,最高和最低优先级均保留给系统使用。用户可以使用的优先级为1~31。Windows按照优先级高低顺序来进行任务的调度,当调度发生时,内核首先检查高优先级的线程是否 就绪,如果有发现有高优先级的线程就绪则立刻将高优先级的线程发往CPU执行。如果有高优先级的线程就绪,就不会执行低优先级的任务。不 过,windows使用成为“饥渴”的时间片分配策略,如果有线程一直渴望得到时间片但是很长时间都没有获得时间片,windows就
阅读全文