如果我這樣做,我的程序工作很細:相同的條件邏輯在Java中爲AtomicBooleans生成兩個完全不同的字節代碼。爲什麼?
if (atomicBoolean1.get() == false && atomicBoolean2.get() == true
&& !atomicBoolean1.compareAndSet(false, true)) {
continue;
}
現在,如果我這樣做,一切都打破了:
if (atomicBoolean1.get() == false && atomicBoolean2.get() == true) {
continue;
}
if (!atomicBoolean1.compareAndSet(false, true)) {
continue;
}
我是不是越來越瘋了嗎?
哇!!!!!爲什麼?我有兩個分支而不是一個?從邏輯上講它是一樣的,所以現在我很困惑。 – JohnPristine
現在你的兩個條件獨立工作。你必須把他們和另一個聯繫起來。 :) –
@JohnPristine,當你做一個「繼續」,它不會去「下一行」。也許你誤解了「繼續」的說法。 – anonymous