タグ

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

  • 関連タグはありません

タグの絞り込みを解除

JavaとProgrammingとConcurrencyに関するagwのブックマーク (6)

  • Javaの並行処理を理解する(入門編) - Qiita

    例えば以下の点について、ちゃんと並行処理を考慮した実装ができていますか? シングルトン インクリメント(++)やデクリメント(--) longやdoubleへの代入 <%! %>タグで宣言された変数 もし、何の考慮もせずにこれらのコードを実装していた場合、 番システムでとんでもないバグを引き起こす可能性があります。 稿では以下の流れに沿って並行処理を解説したいと思います。 並行処理とは 並行処理をなぜ考慮しなければならないのか スレッドセーフな変数とそうでない変数 並行処理はテストが難しい 「並行処理」とは まずはじめにJavaがメモリ上でどのように動作しているかを理解しましょう。 「プロセス」と「スレッド」 プロセス : 各Javaアプリケーションに対してメモリ上に割り当てられた「メモリ空間」と呼ばれる領域で動作する処理単位 スレッド : プロセス上で一行ずつコードを実行する一連のプ

    Javaの並行処理を理解する(入門編) - Qiita
  • Java Compare and Swap Example - CAS Algorithm

  • AtomicIntegerの性能を検証する - Qiita

    マルチスレッドでintを使う そもそもJavaAndroidでintを使う場合,複数のスレッドから演算をするときはロックを取らないといけません.これは1行の演算やインクリメント・デクリメントでも同じです. 例えばi = i + 1を演算する場合,まずiを取得して,1を足してからまたiに代入しますが,取得してから代入するまでに他のスレッドがiの値を変更している可能性があります. i++と書いた場合も同様でインクリメントしている間に値が変わっている可能性があります. アセンブラとかに詳しい人は「インクリメントなんて機械語でアトミックな処理があるじゃん」と思うかもしれませんが,i+=2の場合はロックを取らないといけないことを考えると,言語仕様として一貫性を保つためにもi++はアトミックな処理になっていないのではないか,と想像します. そもそも当に値は変わってるのか 「とはいってもそんなの滅多

    AtomicIntegerの性能を検証する - Qiita
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌

    長い文章になってしまったので、概要だけ先に書きます。 以下のJavaプログラムは、常に上から下に順番に命令が実行されると思いますか?つまり、aに1が格納された後に、bに2が格納されると思いますか? 実は場合によってはこの実行順序が入れ替わる場合があります。これはJavaの言語仕様として定義されていることです。これを考慮しないと信頼性のある並行処理は実装できません。 気になる人は以下を読んでみてください。 a = 1; b = 2; すでにインターネットは社会インフラ化しています。ソーシャルネットワークで多くの人とコミュケーションやコラボレーションできる時代で、個人が情報を作り消費することは当たり前になってきています。そして、インターネット上のコンテンツは増加の一途を辿っています。「情報爆発」なんて言葉も耳慣れた言葉になりましたが、その問題解決のためにMapReduceなどの分散処理技術に注

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
  • IBM Developer

    IBM Developer
  • Clojureをつくったわけ

    The original document appears at http://clojure.org/rationale. The translation is based on November 27, 2009 version of the page. 読みにくくて申し訳ないです。数多くの間違いがあると思いますので、ご指摘ください。 顧客や出資家は、業界標準のプラットフォームであるJava仮想マシン (Java Virtual Machine; JVM) に相当な投資をしており、そのパフォーマンス、セキュリティ、安定性などに満足している。Java開発者は、動的言語の簡潔さ、柔軟さ、生産性をうらやましく思うものの、顧客の環境で動かせるかどうか、既存のコードやライブラリが使えるかどうか、そして動作速度などについて心配するかもしれない。また、ネイティブ・スレッドやロッキングによる並行処理に

  • 1