マルチスレッドのJavaの研究ノート - 最初に会ったマルチスレッド

プロセスとスレッド:

   どのようなプロセスである:プロセスは、それがプログラムを実行したときの例であるリソース(CPU、メモリ、等)の割り当ての基本単位です。システムは、プロセスを実行するプログラムを作成し、そこにリソースを割り当て、その後、プロセスレディキューにプロセスを置く、それはCPU時間を割り当てたときにプロセススケジューラは、それを選択しますので、プログラムが実際に実行し始めました。

スレッドプロセス間で共有リソースのすべて、各スレッド、プログラムが実行されたときに、スレッドが最小単位である、それは実行のプロセスフローで、CPUのスケジューリングとディスパッチの基本単位である、プロセスは、多くのスレッドで構成することができます:スレッドとは何ですかこれは、独自のスタックとローカル変数を持っています。マルチCPU環境では、独立したCPUで実行されるスレッドのスケジューリングは、複数のスレッドが同時に実行することができます。マルチスレッドは、各要求を処理するためのスレッドが割り当てられ、同様に同時操作を実現することができます。

スレッドとプロセスの違い:

   プロセスがリソース割り当ての最小単位であり、スレッドは、プログラム実行の最小単位です。

   プロセスは、独自の別個のアドレス空間を有し、それぞれはプロセスを開始し、システムはそれのためのアドレス空間を割り当てる、コードセグメント、スタックとデータセグメントを維持するためにデータテーブルを設定し、この操作は非常に高価です。スレッドが同じアドレス空間を使用して、共有のプロセスデータであるため、スレッドのオーバーヘッドを作成するプロセスよりもはるかに小さいながらプロセスよりもCPUの変更は、はるかに小さい糸をとります。

   より便利なスレッド間通信、同じプロセスを共有グローバル変数、静的変数やその他のデータ内のスレッド、及び方法(IPC)通信で行われるプロセス間の通信。しかし、どのように同期と相互排他を処理するためには、マルチスレッド・プログラムを書くことの難しさです。

   プログラムより堅牢なマルチプロセス、マルチスレッドプログラムは限りスレッドがあるとして死ぬしかし、全体のプロセスは、あまりにも、死んでいる、そしてプロセスは、プロセスが独自の個別のアドレス空間を持っているので、他のは、プロセスに影響を与えることはありません死にます。

並行並列:

   例えば

   実行順序:順序で複数のタスクを実行するために。私たちは次のことを行う前に、足に試合後、最後のものが行われて、二つのこと、一部の学生が注文を処理しているゲーム、足を再生します。

   パラレル:ゲームをプレイしながら、いくつかの学生が足をエッジも、二つのことは、それを行うには、同時に、お互いに影響を与えます。

   同時:学生は、ゲームの名前ですあり、臭気を所有することになる、足を行った洗濯フィート、その後、ゲームをプレイするために戻ってくるそして、立ち上がることができません。

 

おすすめ

転載: www.cnblogs.com/ldh666/p/10993713.html
おすすめ