0
私はかなりこの方法 の効果を理解していないキュー、提供中の方法:この方法calcWrappedOffset(の意味は何ですか)
@Override
public boolean offer(final T e) {
if (null == e) {
throw new NullPointerException("Null is not a valid element");
}
// local load of field to avoid repeated loads after volatile reads
final AtomicReferenceArray<Object> buffer = producerBuffer;
final long index = lpProducerIndex();
final int mask = producerMask;
final int offset = calcWrappedOffset(index, mask);
.......
}
calcWrappedOffset()メソッド:
private static int calcWrappedOffset(long index, int mask) {
return calcDirectOffset((int)index & mask);
}
private static int calcDirectOffset(int index) {
return index;
}
ありがとうございます。私はもっと学ぶ必要があるかもしれません... – zhangle