エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
Clojureのいろんな並行処理の使い分け Clojureには標準でもagent系のsend, send-offに加え、future関数... Clojureのいろんな並行処理の使い分け Clojureには標準でもagent系のsend, send-offに加え、future関数というスレッド起動系関数があります。 core.asyncの登場で、ここにgoマクロとthreadマクロが加わりました。 これらはすべて、背後ではJavaのExecutorsを使ってスレッドプールを作り、一度生成したスレッドの再利用を行いますが、それぞれ使っているスレッドプールが異なります。さらに関数自体の機能も異なるため、どれをつかったらいいのか迷ってしまうことがあります。 自分用に整理したので、メモとしておいておきます。 IOバウンドとCPUバウンドまず、Clojureのスレッド関連関数の用途は、大きく2種類にわけられます。それが、IOバウンドとCPUバウンドです。 IOバウンドな処理は、実行中の処理がCPUよりもIO処理に強く依存します。DBアクセス