タグ

multithreadに関するmichael-unltdのブックマーク (3)

  • Node.jsだってmulti-thread/multi-processできるもん。 - Qiita

    「Node.jsはシングルスレッドだから、プロダクションで使うのはリスクだ」みたいな発言に対するアンサー(今更感) Node.jsは戦略的にシングルスレッド・シングルプロセスを採用しているわけで、 しかも任意にマルチプロセス化が可能だし、重いデータを扱う際は内部(libuv)で勝手にマルチスレッド化して処理される。 今のシリコンバレーではNode.js経験者の需要が高い、なんて話も聞く。 開発効率の良いNode.jsでプロトタイプを作り、リリースを繰り返すことがベンチャーにとって重要だからだ。 TwitterGoogleレベルならともかく、ベンチャーレベルのtrafficで、パフォーマンス的な問題が出たという話は聞いたことがない。 なお、プロダクションで使うことを勧める記事ではありません。 またECMAScriptのSharedArrayBufferなどの話は無視します。 前段 Node

    Node.jsだってmulti-thread/multi-processできるもん。 - Qiita
  • Perlでスレッド処理を行うサンプル少し - ナマアシタノム

    はじめに Hatena::Bookmark::24hのHTMLデータを生成する際にはてなブックマークの個別ページRSSを複数件取得するわけですが、取得処理を勢いで作ってしまったためにスレッド化されていなかったりします。 早い話が1件目のRSS取得→完了→解析→2件目のRSS取得→…のように直列動作させてしまっている状況です。これは効率悪そうです。 並列で複数のRSSが取得できれば処理時間の短縮になりそうですね。ちなみにPerlには並列動作を行う仕組みとしてスレッドが組み込まれているようで、今日はPerlでスレッド処理を行うための処理をメモしておこうかと思います。 注意 実験した環境はWindows XP(SP3)/ActivePerl 5.8.8(Build819)です。それ以外の環境では動作確認していません。 サンプル1:スレッド生成&実行 概要 スレッドを複数個生成・配列(@threa

    Perlでスレッド処理を行うサンプル少し - ナマアシタノム
  • マルチスレッド・プログラミングの落とし穴、その2

    ずいぶん前に、「マルチスレッド・プログラミングの落とし穴、その1(かもしれない)」というエントリーを書いたが、今回はPhotoShareサーバーを運営していて、まさにこのあたりの深い考察が必要になって来たので、良い機会なので続編エントリー。 PhotoShareのバックエンドのようにCRUD(Create/Read/Update/Delete)のAPIをサポートするバックエンドを作る場合、Create/Update/Deleteのリクエストに対してはクライアントからのAPIコール時にすぐに(HTTP Requestに返事をする前に)データベースに変更を加え、Readの際にも(キャッシュを使う・使わないを別にして)データベースの最新の状況を反映するデータを返すように設計するのが普通である。 このアーキテクチャの問題は、ユーザーのアクティビティが増えた時に、データベースやI/Oがボトルネックと

  • 1