开发者社区 问答 正文

计算环形队列计算序号值:sequcnce % indexMask; 这里为什么是于运算

提问147.png

原提问者GitHub用户liuyao37511

展开
收起
山海行 2023-04-27 20:07:41 90 分享 版权
1 条回答
写回答
取消 提交回答
  • 是对 "当索引值(sequence)和初始值(indexMask)相同时的临界情况处理“,初始值设定为bufferSize - 1 以bufferSize默认16 * 1024 为例,由于indexMask 初始化为 bufferSize - 1,即为 16383,所以当sequence 为16383时,应该是使用的16383这个位置,而非其他值。(若使用‘%’,这个位置就变成了0)

    原回答者GitHub用户wingerx

    2023-04-28 14:36:27
    赞同 展开评论
问答地址: