4
Javaでの揮発性と同期の違い
変数をJava として宣言することとvolatile、常にsynchronized(this)ブロック内の変数にアクセスすることの違いに疑問を感じていますか? この記事http://www.javamex.com/tutorials/synchronization_volatile.shtmlによると、言うべきことがたくさんあり、多くの違いがありますが、いくつかの類似点もあります。 私はこの情報に特に興味があります: ... 揮発性変数へのアクセスがブロックする可能性は決してありません。単純な読み取りまたは書き込みを行うだけなので、同期ブロックとは異なり、ロックを保持することはありません。 volatile変数にアクセスしてもロックは保持されないため、アトミック操作として読み取り、更新、書き込みを行う場合には適していません(「更新を見逃す」準備ができていない限り)。 read-update-writeとはどういう意味ですか?書き込みも更新ではないのですか、それとも単に更新が読み取りに依存する書き込みであることを意味していますか? 何volatileよりも、synchronizedブロックを介して変数にアクセスするよりも、変数を宣言する方が適しているのはいつですか。volatile入力に依存する変数に使用するのは良い考えですか?たとえばrender、レンダリングループを通じて読み取られ、keypressイベントによって設定されるという変数がありますか?