次の変数xは揮発性である必要がありますか?
または、utils.concurrentロック内の操作は、同期ブロックと同じ機能を実行しますか(メモリに書き込まれ、CPUキャッシュに保存されないようにします)?
myMethod(){
myLock.lock();
x++;
myLock.unlock();
}
次の変数xは揮発性である必要がありますか?
または、utils.concurrentロック内の操作は、同期ブロックと同じ機能を実行しますか(メモリに書き込まれ、CPUキャッシュに保存されないようにします)?
myMethod(){
myLock.lock();
x++;
myLock.unlock();
}
このような変数は、ロックなしで他の場所にアクセスする場合にのみ揮発性である必要があります。たとえば、サイズ変数への高速読み取り専用アクセスとして。ロックメソッドは、同期ブロックと同じ目的を果たします。Lockクラスについては、javadocの「メモリ同期」セクションを参照してください。