1.使用环形缓冲区,进行数据交换,threadWrite -> buf -> threadRead
threadWrite{
memcpy(buf[pushCount & mask], value, size);pushCount++;...
}
threadRead{
...
}
若mask == 2, pushCount从0开始累加
当pushCount = 0
pushCount & mask == 0
当pushCount = 1
pushCount & mask == 0
当pushCount = 2
pushCount & mask == 2
这是不是出问题了呢,数组的第二个位置没写入,第一个位置被写了两遍
2.环形队列的掩码mask是不是有什么特殊要求,比如奇偶性之类的,望大神解答
慕少森