タグ

ブックマーク / wadahiro.hatenablog.com (2)

  • HashMapのマルチスレッドアクセス問題 - getに対する同期化は忘れがち? - wadahiroの日記

    HashMapのマルチスレッドアクセス問題は、これまで色んな記事やBlogで取り上げられてますのでかなり有名ですよね。例えば以下とか。 ThreadとHashMapに潜む無限回廊は実に面白い? (1/3) - @IT HashMapと無限ループとsynchronized - 谷 心 in せろ部屋 複数のスレッドから同時にputされると、無限ループになる可能性があるというやつですね。 しかしgetに対しても同期化が必要という意識はもしかして低いのでしょうか? これまでいくつかのプロジェクトで同様のバグに出会ってきました。皆さん、getやremoveに対してはちゃんとsynchronzedブロックを使うなどして同期化を行っているんですけど、getには何もせず。 この場合、putとgetが重なると値が存在してもnullが返ることがあります。結果として予期せぬ動作を起こしてしまいます。 そして

    HashMapのマルチスレッドアクセス問題 - getに対する同期化は忘れがち? - wadahiroの日記
  • Gradleを試行してみて - wadahiroの日記

    ここ最近、ビルドツールにGradleを使ってます。Mavenは柔軟性がなく、複雑なことをやろうとすると結局maven-antrun-pluginでAntスクリプトをPOMに埋め込むなんてことになってしまうけど、Gradleはその点自由度はかなり高い。だってGroovyでそのまま書けますからね。 Antで書くくらいならGradleでいいんじゃない?と思ってます。理由は以下。 GradleだとAntタスクをそのまま使える。 ant.タスク名(…)でそのまま使えるので、Antになれた人でもとっつきやすい。独自に作りこんだAntタスク資産もそのまま使えますしね。 Groovyが書けるので、条件分岐や繰り返しも思いのまま。 ant-contribを使ってAntでもできるけど、XMLで書くくらないならGroovyでさくっと書いた方が楽だし見やすいでしょ。 Java、Groovyの色んな外部ライブラリも

    Gradleを試行してみて - wadahiroの日記
  • 1