Der folgende Code stammt aus dem Quellcode der Klasse java.util.concurrent.ConcurrentHashMap.
Code: Select all
// Method: transfer , line: 2463
if (i < 0 || i >= n || i + n >= nextn) {
int sc;
if (finishing) {
nextTable = null;
table = nextTab;
sizeCtl = (n >> 1);
return;
}
if (U.compareAndSetInt(this, SIZECTL, sc = sizeCtl, sc - 1)) {
if ((sc - 2) != resizeStamp(n) = n, mir fällt kein Sonderfall ein; es fühlt sich an, als ob es nicht passieren kann.
[*]Bedingung 3: i + n >= nextn, ist dasselbe.
[/list]
Sind die Bedingungen 2 und 3 für defensive Programmierung?
Mobile version