`
raojl
  • 浏览: 208914 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(ACE)Ace_Task与主动对象

阅读更多

(ACE)Ace_Task

由两部份组成 :一个或多个线程 、一个底层消息队列

主动对象 :就是在执行方法调用的时候是异步的,常 使用 Ace_Task 实现对方法启用队列的处理。这里的方法相当于

在 ACE_Task里底层消息I/O。

比如写日志,如果采用传统的被动对象模式,那么加的日志写块越多,对整体OO软件性能将是大的削弱。而且容易出现I/O异常,如果采用主动对象模式就不一样了。怎么说呢?

》》》比如我吃瓜子的时候不对瓜子壳做处理,我专心吃瓜子。有人帮我在地上捡瓜子,但如果我在吃瓜子的时候还有收集瓜子壳,显然我吃瓜子的速度慢下来了,当然这样发现多了个人在做事,对!这就是多线程。

2
0
分享到:
评论

相关推荐

    analysis of ACE_Task-putq with timeout=0 when queue is full on Linux platform.pdf

    其声明位于`ace/Task_T.h`文件中: ```cpp // 对于以下五个方法,如果@atimeout == 0,则调用者将 // 阻塞直到可以采取行动;否则将等待直到@atimeout指定的时间流逝。 // 这些调用将在队列关闭、停用、发生信号或...

    利用ace的ACE_Task等类实现线程池的方法详解

    在ACE(Adaptive Communication Environment)框架中,可以使用ACE_Task等类来实现线程池。ACE是一个跨平台的C++网络编程库,提供了丰富的并发和分布式系统支持。 在ACE中,`ACE_Task`是实现线程池的核心类,它是一...

    ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt ACE_Thread.txt

    根据提供的文件信息,我们可以归纳出以下关键知识点,主要围绕ACE框架中的线程管理与日志记录功能进行展开。 ### ACE框架简介 ACE (Adaptive Communication Environment) 是一个高性能的网络通信框架,支持多种操作...

    ACE.rar_ACE 网络 编程_visual c

    2. ACE_Task:提供了一种线程池的实现,可以管理和调度工作线程,提高系统效率。 五、ACE的内存管理 ACE提供了强大的内存管理机制,如ACE_Allocator,支持池化内存分配,避免了频繁的小块内存分配带来的性能开销。 ...

    ACE并发编程示例及Task类的实现

    在《主动对象模式.docx》文档中,你可以学习到主动对象模式的基本概念、优缺点以及在并发编程中的应用,这将有助于你理解ACE_Task的设计思想。 总结来说,ACE框架中的ACE_Task类是实现并发编程的强大工具,它结合了...

    ACE框架主动对象的实现及代码示例

    ACE_Task_Base* task = new ACE_Task_Base(queue); // 添加命令请求到队列 queue.enqueue(new StatusUpdate(controller, future)); ``` #### 五、总结 通过上述分析可以看到,在ACE框架中实现主动对象的关键在于...

    开源利器ACE

    框架层提供了很多应用模式,作为工具使用也很方便,常用的有 ACE_Task_Base、ACE_Task、主动对象模式、Singleton、Reactor 模式、Proactor 模式、ACE_Acceptor/Connector 和 Streams 模式等。 ACE_Task_Base 提供了...

    ACE简单例子 并附说明

    - **任务管理:ACE_Task**:ACE_Task是一个高级的线程抽象,它支持异步任务执行、任务调度和生命周期管理。 ##### 6. 反应器模型 - **ACE::Reactor**:ACE::Reactor是一个基于事件驱动的设计模式,用于处理I/O事件...

    ACE继承层次图

    - **ACE_Task_Base**:是所有任务类的基础,提供了基本的任务控制接口。 3. **ACE_Shared_Memory_Pool**:管理共享内存池,用于进程间或线程间的共享数据交换。 - **ACE_Lite_MMAP_Memory_Pool**:轻量级的内存池...

    ACE多级线程实例

    该类是所有ACE线程类的基础,继承自`ACE_Task_Base`类。一个典型的ACE线程实例包括以下步骤: 1. **定义一个派生自`ACE_Task_Base`的类**:例如`HA_CommandHandler`类。 2. **重写`svc()`方法**:该方法将在新线程...

    ACE编程(linux平台)借鉴.pdf

    ACE编程在Linux平台上,特别是在Red Hat Linux 9 (Shrike)环境下,主要涉及多线程的创建、线程通信与线程同步等关键概念。在多线程编程中,线程的创建是基础,ACE库提供了方便的API来支持这一功能。 线程通信和同步...

    ACE-inheritance

    - `ACE_Task`:代表一个可以独立运行的任务,通常用于执行后台任务或定时器处理。 #### 连接策略与资源管理 ACE提供了多种连接策略和资源管理类,用于优化不同场景下的网络通信性能: - `ACE_Connection_...

    ACE编程(linux平台)[归类].pdf

    另一个`ACE_Task<ACE_MT_SYNCH>`的子类`message_handler`负责从队列中取出并处理消息。消息实体`msgStruct`包含长度和内容字段。 7. **ACE_Acceptor**:`ACE_Acceptor`是一个服务器端接口,用于监听客户端连接请求...

    C++ Network Programming(ACE)

    《C++ Network Programming(ACE)》是一本专为高级从业人员和初级开发人员设计的指南,深入探讨了如何利用C++语言进行网络编程,特别是在使用ACE(Adaptive Communication Environment)库时的方法与技巧。ACE是一个...

    ACE基本的多线程编程[文].pdf

    首先,创建多线程的核心在于定义一个继承自`ACE_Task_Base`或`ACE_Task`的类。`ACE_Task`是一个抽象基类,它为多线程服务提供了一个标准的接口。在派生类中,我们需要重载`virtual int svc(void)`函数,这个函数将...

    ACE编程(linux平台)归类.pdf

    - **处理端**:`message_handler`继承自`ACE_Task<ACE_MT_SYNCH>`,从消息队列中取出消息并进行处理。`ACE_Acceptor`用于监听连接请求,例如`ACE_Acceptor<HA_MessageReceiver, ACE_SOCK_ACCEPTOR>`。 6. **ACE_...

    基于ACE的活动对象实例

    `ACE_Active_Object`是活动对象模式的具体实现,它继承自`ACE_Task`,并封装了线程管理和任务调度。 在压缩包中,`ActiveObjectTest.sln`是Visual Studio的解决方案文件,用于打开和编译项目。`ActiveObjectTest....

    C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks

    - 第6章讨论了ACE任务框架,重点讲解了ACE_Message_Queue和ACE_Task类,它们支持任务的创建、执行以及消息队列的管理,从而实现了多线程环境下的任务调度和消息传递。 7. ACE接受器-连接器框架 - 第7章讲述了ACE...

Global site tag (gtag.js) - Google Analytics