找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4621|回复: 3

对应用模式语言开发应用级网关的一些疑惑

[复制链接]
发表于 2008-1-7 20:25:01 | 显示全部楼层 |阅读模式
ACE应用第一章应用模式语言开发应用级网关中讨论了管理消费者消息发送的两种模式。一种是在reactor的事件循环中处理的单线程模式;
一种是使用主动对象的多线程模式;
使用单线程模式的话就不能让某个消费者阻塞了线程,使用主动对象则每个消费者可以在自己的线程中独自运行而不影响其他消费者。但每个主动对象需要创建一个独立的线程,如果网关有成百上千个消费者的话,那系统里面不是要创建成百上千个线程,这样系统可能会不堪重负。这样主动对象是不是就不适合这种有很多连接的应用呢?初学ACE,不知我的理解是否有误?
 楼主| 发表于 2008-1-7 20:25:10 | 显示全部楼层
理解有误。主动对象用的是ACE_Task,并不是每个用户请求启动一个线程这样的处理方式,而是可用使用一个线程池。共同处理队列中的请求。
 楼主| 发表于 2008-1-7 20:25:27 | 显示全部楼层
我看ACE_TASK的说明,每个TASK可以有一个或多个线程。如果不是每个用户启动一个线程的话,那是不是多个用户共享使用一个ACE_TASK?
 楼主| 发表于 2008-1-7 20:25:38 | 显示全部楼层
当然了,共享减少了系统的开销和损耗,使得效率得到提升。ACE_Task内置消息队列,对要处理的消息,自动排队,异步处理。

A  \         /
B  - Queue -  Multi Thread Process
C  /         \
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 06:43 , Processed in 0.026912 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表