当
Enqueue失败时,您 仍在 增加
p.tail,因此下一次它似乎不会失败-
这就解释了
false第一个循环中的单曲(并弄乱了第二个循环中的所有内容)。原始算法说的
OVERFLOW意思是“放弃一切”,而不是“只是继续前进,就好像什么都没发生一样”
;-)。
您需要做的就是
p.tail如果已检查是否发生了故障,则递减-或将增加的值放在本地临时文件中,然后
p.tail仅在 未
发生故障时才将其移动到,这可能会更优雅。这样一来,否则
Enqueue就 不会 排队新的价值,但本身队列(而没有溢出值)仍是语义完整和正确的未来运营。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)