亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

環形緩沖區使用&操作是否有BUG?

環形緩沖區使用&操作是否有BUG?

陪伴而非守候 2018-06-23 09:34:05
1.使用環形緩沖區,進行數據交換,threadWrite -> buf -> threadReadthreadWrite{memcpy(buf[pushCount & mask], value, size);pushCount++;...}threadRead{...}若mask == 2, pushCount從0開始累加當pushCount = 0pushCount & mask == 0當pushCount = 1pushCount & mask == 0當pushCount = 2pushCount & mask == 2這是不是出問題了呢,數組的第二個位置沒寫入,第一個位置被寫了兩遍2.環形隊列的掩碼mask是不是有什么特殊要求,比如奇偶性之類的,望大神解答
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

如果你用&,掩碼mask就必須滿足

2n?1


環形緩沖區實際上用的是取余操作來保證不爆炸的。如果你用正常的取余%,那么對mask沒有要求。如果用按位與&的話,只有mask滿足上述條件時,所有二進制位都為1,才能與取余等價。


查看完整回答
反對 回復 2018-07-20
  • 1 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號