タグ

マルチスレッドに関するtakaesuのブックマーク (3)

  • Nginxのアーキテクチャを理解する - Qiita

    Nginxのアーキテクチャについて調べてたことをまとめた。 用語のおさらい プロセス(Process) プログラムの実行単位であり、CPU時間単位で割り振られる。 状態(ステート)があり、現在処理中であるRunning状態だったり、実行可能状態であるReady等が存在する。 CPUがプロセスを実行する場合、そのプロセスが持つメモリデータに対して演算を行う。 プロセスはテキストセグメントとデータセグメントからなる構造データをメモリ上に持っている。 テキストセグメント プログラムの命令列 データセグメント PDA (Processor Data Area)と呼ばれる、プロセッサの情報やプロセス管理用のデータ領域 データ領域と呼ばれる、定数等が置かれる静的領域と、通常の変数等が置かれるヒープ領域からなる領域 スタック領域と呼ばれる、一時的なデータ保管領域 実行中のプロセスを確認 ~ ❯❯❯ ps

    Nginxのアーキテクチャを理解する - Qiita
  • マルチスレッド/プロセスまとめ(Ruby編) - Qiita

    プログラムの実行単位 固有のメモリ空間を持つ(リソースを共有しない) マルチプロセスの場合、物理/仮想メモリ領域間のアドレス解決のオーバーヘッドが高い。 プロセスの実行単位 共通のメモリ空間を持つ(リソースを共有する) マルチスレッドの場合、物理/仮想メモリ領域間のアドレス解決は発生しない。 ユーザースレッド ユーザー空間(アプリケーションが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがあっても、1つのスレッドしか実行されない。 OSカーネルを介さないスレッド切り替えのため、スレッド切り替えに伴うオーバーヘッドが少ない。 仮想VM上で実行されるスレッドをグリーンスレッドと呼ぶ。 カーネルスレッド カーネル空間(カーネルが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがある場合、同時に複数(CPUコア数分)のスレッドを実行できる。 OSカーネルを介するスレッド切り替

    マルチスレッド/プロセスまとめ(Ruby編) - Qiita
    takaesu
    takaesu 2016/07/22
    parallel を利用するとマルチスレッド、マルチプロセスを実現できる。
  • [Java]ExecutorServiceの正しい終了(shutdown)の仕方 | 大発見 | 大発見

    photo credit: Juan Antonio Capó ExecutorServiceを使うと簡単にマルチスレッド処理が行えますが、 終了もshutdownメソッドを呼ぶだけと思っていませんか? shutdownメソッドだけだと不十分です。 学校の先生と生徒の関係で説明します。 shutdownメソッドは指示するだけ 学校で先生が生徒に対して、「問題が解けたら教えてねー」と言います。 生徒は問題が解けた人から「先生できたー!!」と言ってきます。 全員問題が解けた段階で授業が終わるとしましょう。 対応はこう。 先生: ExecutorService 生徒: ExecutorService内のスレッド 問題: ExecutorService.executeに渡すタスク(Runnable) 授業: mainスレッド 学校: Javaプロセス 「問題が解けたら教えてねー」

  • 1