タグ

javaとparallelに関するtakuya-aのブックマーク (3)

  • 再入可能なロックの話 - from scratch

    先週、@t_wadaさんと@yosuke_furukawaさんと議論した再入可能性に関する私の経験について書きました | ロック(ミューテックス)の再入可能性 https://t.co/j3xeOUxaWt— Yoshiki Shibata/柴田芳樹 (@yoshiki_shibata) October 22, 2018 突然のロックの話 いきなりロックの話をしましたが、10月に(なぜか)一緒に働いてるメンバーとの中で大盛り上がりした話題です。もともとはリクルートテクノロジーズで行われている、柴田芳樹さんのプログラミングGo勉強会で話題になった話です。 yshibata.blog.so-net.ne.jp ここにも書いてあるのですが、 Golang では sync.Mutex を使ったロックでは再入可能ではありません。 一方 Java のロックは再入可能です。 で、この設計に関しては合理的

    再入可能なロックの話 - from scratch
  • Facebook、マルチスレッドのコードを静的解析してデータ競合を検出する「RacerD」、オープンソースで公開。同社Androidアプリのリリース前に1000以上の問題を検出

    Facebookは、Javaのコードを静的に解析してマルチスレッドプログラミングで発生するデータ競合のバグを発見するツール「RacerD」をオープンソースでリリースした。 アプリケーションのレスポンスを改善するうえで、マルチスレッド化は重要な選択肢のひとつです。 その一方で、マルチスレッドのアプリケーションは十分に注意深くプログラミングしないと、変数の値が予期しないタイミングでほかのスレッドから書き換えられるなどの問題が紛れ込みやすいものです。 しかもマルチスレッドに起因する問題は再現が難しく、一般に発見するのが困難です。 RacerDリリース:Facebookで1000以上ものバグを発見 Facebookは、こうしたデータ競合の問題を、コードを静的解析することで発見し、警告してくれるツール「RacerD」をオープンソースで公開しました。 Facebookの説明によると、RacerDはロッ

    Facebook、マルチスレッドのコードを静的解析してデータ競合を検出する「RacerD」、オープンソースで公開。同社Androidアプリのリリース前に1000以上の問題を検出
  • Multi PaxosをJavaで実装してみた - As a Futurist...

    Java の練習と分散システムの理解のために、Multi Paxos の実装をしてみてた。16 ファイルで 970 行程度で一応正常系は動くものはできたと思う。そろそろ疲れたので切り上げ。コードはださないけど、やったことをまとめ。 実装方針 この記事を何度も読んで、この通りに実装した。それに尽きる。 Understanding Paxos もちろんPaxos Made Simpleも読んだけど、実装するにあたっては上の記事がきれいにまとまってて必要十分だったので助かった。特に Multi Paxos について丁寧に説明があるのでありがたかった。 まずは Paxos を実装 Paxos は単一の値の合意をとるためのプロトコルで、まずはここを実装した。上の記事通りに、Proposer/Voter/Arbiter の 3 Role を class で実装。一応分けたけど、Peer としてはどれも

    Multi PaxosをJavaで実装してみた - As a Futurist...
  • 1