タグ

threadに関するkenyuyのブックマーク (2)

  • スレッドセーフな実装について - A Memorandum

    前回 blog1.mammb.com について書いたのでついでにスレッドセーフについても書いとこ。 レースコンディションとは スレッドセーフ化 複合アクション 複合アクションをスレッドセーフにする レースコンディションとは Javaではスレッドを比較的簡単に扱うことができますが、その利用にはいろいろと注意しなければならないことがあります。スレッドは簡単に扱えますが、スレッドの安全性を確保しつつ実行性能を得るのは難しいトピックの一つです。 以下のクラスはスレッドセーフではありません。 public class NotThreadSafe { private long nextLong; public long getNextLong() { return ++nextLong; } } getNextLong()の呼び出しは、複数スレッドからの呼び出しタイミングにより、正しい結果が得られなく

    スレッドセーフな実装について - A Memorandum
  • RubyのThread、Fiber、Kernel、forkで並列処理やプロセスの深淵へ

    連載目次 前回の「RubyのFile/IOクラスで入力と出力、ファイルの読み取りと書き込み、フィルター作成」では、データの入出力について解説しました。連載第11回に当たる今回は、スレッド、ファイバー、プロセスといったトピックについて解説します。 ThreadクラスやFiberクラスを使うことで、Rubyでも並列処理を記述することが可能です。また、前回紹介したIOクラスを使うことで、Rubyプログラムからプロセスを生成して入出力を行えます。 さまざまなプログラミング言語では並列処理のための仕組みが使えるようになっています。もちろんRubyも例外ではなく、ThreadクラスやFiberクラスを使って並列プログラムを書くことができます。 また、RubyからOS固有のコマンドを別のプロセスとして実行したり、自分自身をfork(フォーク)して別プロセスとしてRubyプログラムを実行したりすることがで

    RubyのThread、Fiber、Kernel、forkで並列処理やプロセスの深淵へ
  • 1