タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

synchronizedに関するsuusukeのブックマーク (1)

  • synchronizedのバグパターンを1つ知った - うなの日記

    隣の炎上プロジェクトのヤパイコード探しを仰せつかったので、とりあえずFindBugsにかけてみると、↓こんなのが出た。 class Hoge { private String foo; public void setFoo( String foo ) { synchronized( this.foo ) { // fooへの更新を1スレッドに制限したい(のだろうと推測) this.foo = foo; <処理...> } } } 「this.foo」のロックで同期化をしようとしているのだけど、synchronizedブロック内でthis.fooを書き換えてしまっている。書き換えた後のthis.fooは誰もロックしていないため、ブロックが複数スレッドから実行できてしまう。以下は検証コード。 class Foo { private String foo = ""; // nullを設定されると

    synchronizedのバグパターンを1つ知った - うなの日記
  • 1