找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4242|回复: 2

请教ACE_Message_Queue中低水位的问题

[复制链接]
发表于 2008-1-7 20:27:55 | 显示全部楼层 |阅读模式
ACE_Message_Queue中的缺省低水位为什么和高水位相等(都是16K)? 不是说如果队列中的数据量小于低水位的时候,get操作就可能失败么,岂不是要求队列中最少有16K的数据?
 楼主| 发表于 2008-1-7 20:28:05 | 显示全部楼层
说说我的理解。这个水标是流量控制。意思是超过或者低于这个值,才会进行流量控制。
比如,低于16k,可以任意推入队列,高于16k,推入会依赖你的规定阻塞或者延时返回。
get不会失败,因为里面有数据呀。
之所以保持一致,是因为:如果他们两个有差值,比如低水位8K,高水位16K,会产生的结果是停滞一段时间或者返回错误,详见c++网络编程第二卷,P159
 楼主| 发表于 2008-1-7 20:28:19 | 显示全部楼层
我认为是这样的,如果高低水位不等,如低水位8K,高水位16K,则队列满了以后,入队会失败或者阻塞,直到队列中的数据,低于低水位才能继续入队。这样会造成“振荡”或延时的效果。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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