タグ

2009年9月15日のブックマーク (2件)

  • プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう - Schi Heil と叫ぶために

    まずは分かりやすいプロセスとスレッドから。 WindowsLinux などの汎用 OS 上のアプリケーションは一般にプロセスとして動作している。プロセスはプログラムの実行単位である。プロセスは1つ以上のスレッドと、ファイル、ヒープメモリなどのリソースで構成される。一方、スレッドは CPU 利用の単位である。スレッドはそれぞれが専用のスタックと CPU レジスタのコピーを保持するが、ファイルやヒープメモリは同一プロセス内の全てのスレッドで共有する。 スレッドのさらにサブセットがファイバである。スレッドとの違いは切り替え動作にありファイバのほうが軽いというメリットがある。プロセス、スレッド、ファイバの関係はこちらの説明が分かりやすかった。 プロセスはプログラム実行のための固有のメモリ空間を持っており、最も独立性の高い実行単位である反面、起動や切り替えに時間がかかるという特性を持っています

    プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう - Schi Heil と叫ぶために
    kaito834
    kaito834 2009/09/15
    プロセス、スレッド等の用語が整理されている。ここで納得がいった>「「プロセス = メモリー割り当ての単位」「スレッド = CPU割り当ての単位」みたいなイメージ」
  • Ruby, Pythonで並列に逆引きを行う - bkブログ

    Ruby, Pythonで並列に逆引きを行う ウェブサーバのログを解析するときなど、IPアドレスからホスト名を引く処理 (逆引き) を大量に行いたいときがあります。DNS への逆引きの問い合わせには場合によっては数秒待たされることがあるため、大量の IP アドレスをひとつづつ順に処理していくとかなり時間がかかります。 記事では Ruby または Python でマルチスレッドで並列に逆引きを行う方法を紹介します。 Ruby の場合 Ruby で逆引きを行うには socket ライブラリを使う方法と、Resolv ライブラリを使う方法があります。マルチスレッドで並列に逆引きを行うには Resolv ライブラリを使う必要があります。 socket ライブラリを使った場合、 Socket.gethostbyaddr か Socket.getaddrinfo を使って逆引きを行います。これらは同

    kaito834
    kaito834 2009/09/15
    ホスト名のAレコードを得るだけなら、socket.gethostbyaddr だけでもよいみたい。同じ処理を繰り返し実行するなら、複数のスレッドで並列に実行すればよいか。