タグ

Threadとconcurrentに関するhikazohのブックマーク (2)

  • 2007-06-08

    サンタクロース問題をJavaで書いてみました(via サンタクロース問題を Squeak Smalltalk で)。Golfではありません。 …プログラムを書いてから問題を読み直したら、問題を読み違えてた(>_<)。こびとさんは10人いるのか。ふえーん。でもいいや、公開しちゃうもん。 import java.util.concurrent.*; import java.util.*; class Santa extends Thread { private static final int REINDEER_NUM = 9; private static final int ELF_NUM = 3; private boolean _readyAllElvesToWork = false; private boolean _readyAllReindeersToWork = false;

    2007-06-08
  • Clojureのいろんな並行処理の使い分け

    Clojureのいろんな並行処理の使い分け Clojureには標準でもagent系のsend, send-offに加え、future関数というスレッド起動系関数があります。 core.asyncの登場で、ここにgoマクロとthreadマクロが加わりました。 これらはすべて、背後ではJavaのExecutorsを使ってスレッドプールを作り、一度生成したスレッドの再利用を行いますが、それぞれ使っているスレッドプールが異なります。さらに関数自体の機能も異なるため、どれをつかったらいいのか迷ってしまうことがあります。 自分用に整理したので、メモとしておいておきます。 IOバウンドとCPUバウンドまず、Clojureのスレッド関連関数の用途は、大きく2種類にわけられます。それが、IOバウンドとCPUバウンドです。 IOバウンドな処理は、実行中の処理がCPUよりもIO処理に強く依存します。DBアクセス

    Clojureのいろんな並行処理の使い分け
  • 1