synchronized
ブロック内からメソッドにアクセスしたい。次に例を示します。
public void doSomething() {
// simple stuff
// a block to reduce the synchronized code to
// what really needs to be synchronized.
synchronized(this) {
if (precondition) {
doSequentialStuff();
}
}
}
private void doSequentialStuff() {
// do stuff needs to be performed sequentially.
}
doSequentialStuff
きれいなコードを書くには、メソッドを明示的に作成するのがよいのではないかと考えましたsynchronized
。ロックは両方の場合にあり、メソッドはブロックthis
からのみアクセスされることが保証されているため、これはセマンティックに違いはありません。synchronized
可読性を高めたいと考えています。
何かアドバイス?
編集: コメントを組み込むために例を修正しました。