
ACE分析
蓝风23
人体运动、生物特征、高性能移动计算、人性化智能交互
展开
-
Delphi 释放内存
方法一:如何利用Delphi释放所占的内存有人写了一个清内存的bpl插件,据他讲用了以后Delphi2005只占3、4兆内存,多次编译后占用内存不会递增,其实这个bpl只有一个pas文件,这个文件里主要的就是一个函数,如有兴趣你看看:{2004.11.30wr960204 武稀松(王锐)}unit UnitMMSave;interfaceusesClasses, Windo转载 2012-03-13 09:31:26 · 1182 阅读 · 0 评论 -
double-check
ACE_Singleton 的 instance的实现:template TYPE *ACE_Singleton::instance (void){ ACE_TRACE ("ACE_Singleton::instance"); ACE_Singleton *&singleton = ACE_Singleton::instance_i (); // Perfor原创 2012-09-06 12:05:07 · 1088 阅读 · 0 评论 -
ACE 领导者-跟随者线程池 选举方案
ACE 领导者-跟随者线程池 选举方案 分析 ACE LF_ThreadPool 例子中的 领导者选举方案,增加一种新的选举方案,见源代码分析。ACE例子源代码如下:// $Id: LF_ThreadPool.cpp 94310 2011-07-09 19:10:06Z schmidt $#include "ace/config-lite.h"#if defined (ACE_H原创 2012-09-16 16:12:31 · 803 阅读 · 0 评论 -
各种版本的++、--原子操作
汇编实现(可内嵌在C++里使用)#ifdef WIN32 void __inline atomic_inc(int* v) { __asm { mov ebx, v lock inc dword ptr [ebx] } }#else static __inline__ void atomic_inc(int *v) {原创 2012-11-07 12:44:04 · 760 阅读 · 0 评论 -
慎用Reactor Notify机制
在Reactor的模式,有一种辅助的通知机制Notify机制,简单说就是通过通知发起者调用 notify函数,notify的消息被保存在一个管道中,handle_event的处理中会检查这个管道中是 否有通知数据,如果有就根据通知的消息,会根据默认的通知消息的类型去调用hanle_input等函数。 ACE Reactor的默认Notify方式采用的是ACE_Pipe ,ACE_原创 2012-08-30 11:02:20 · 937 阅读 · 0 评论 -
ACE_Task
ACE_Task封装了任务,每个任务都含有一或多个线程,以及一个底层消息队列。各个任务通过这些消息队列进行通信。其主要成员如下: open():初始化资源 close():释放资源 activate():启动线程,可指定线程的数目 svc():线程的启动位置 putq():放置消息到任务的消息队列中原创 2012-08-29 14:00:23 · 1149 阅读 · 0 评论 -
ACE 锁类属
ACE_Mutex 封装互斥机制(根据平台,可以是mutex_t、pthread_mutex_t等等)的包装类,用于提供简单而有效的机制来使对共享资源的访问序列化。它与二元信号量(binary semaphore)的功能相类似。可被用于线程和进程间的互斥。 ACE_Thread_Mutex 可用于替换ACE_Mutex,专用于线程同步。 ACE_Process_Mu原创 2012-08-17 13:47:02 · 868 阅读 · 0 评论 -
经典的内存池技术
经典的内存池(MemPool)技术,是一种用于分配大量大小相同的小对象的技术。通过该技术可以极大加快内存分配/释放过程。下面我们详细解释其中的奥妙。经典的内存池只涉及两个常量:MemBlockSize、ItemSize(小对象的大小,但不能小于指针的大小,在32位平台也就是不能小于4字节),以及两个指针变量MemBlockHeader、FreeNodeHeader。开始,这两个指针均为空。原创 2012-08-17 14:16:35 · 694 阅读 · 0 评论 -
VS2008下 ACE 编译 for WINDOWS
1. 下载ACE+TAO.zip 示例版本:ACE+TAO+CIAO-6.1.3.zip(选择Full下载,它包含了vc9的解决方案) 下载地址:http://download.dre.vanderbilt.edu/2. 解压至自定义目录 我们现在把它解压到C:/3. 配置环境变量 ACE_ROOT = C:\ACE+TAO+CIAO-6.1.3\AC原创 2012-07-28 15:02:28 · 649 阅读 · 0 评论 -
常用 delphi code
//延时函数,MSecs单位为毫秒(千分之1秒)procedure Delay(MSecs: Longint);var FirstTickCount, Now: Longint;begin FirstTickCount := GetTickCount(); repeat Application.ProcessMessages; Now := Get原创 2012-07-14 14:15:19 · 969 阅读 · 0 评论 -
Delphi中Thread Error解决三例
http://hi.baidu.com/gghgdk/blog/item/faab2c353c4b9057241f1474.html在实际工作中遇到的多线程故障三例,虽然一切都过去,也记录下来,权当做个总结。一个Delphi写的较老的多线程处理应用程序,数年间一直运行良好。近日突然频繁报线程错误,并且再两台不同的服务器中的错误情况也不相同,自然解决方法也不相同。服务器1:转载 2012-07-12 21:53:30 · 2298 阅读 · 0 评论 -
基于ACE Proactor框架下高并发、大容量吞吐程序设计
本文来自:http://my.oschina.net/JJREN/blog/51966Reactor与 Proactor 基本概念在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么转载 2013-11-02 10:31:08 · 1007 阅读 · 0 评论