プロセス
このプログラムは、呼び出されたプロセスで実行するプログラムの実施プロセス、抽象的な概念であるされています
オペレーティングシステムからプロセス
マルチプロセス
プロセスおよび手順の間の差
、プログラムが実行されていないファイルの束を識別することができ、コンピュータプログラムは、バイナリ、ハードドライブの杭の上に横たわっています
プログラムがメモリにハードディスクからデータを読み取るために、実行すると、CPUは、メモリから命令を読み取り、実行し、
操作は、プロセスを生じさせた後は
プログラムは、複数のプロセスを生成するために複数回実行されますが、独立したプロセスですすることができます
非ブロッキング同時並列ブロッキング(フォーカス)
妨害:プログラム遭遇IO操作がブロックされた状態になっています
本地IO入力された印刷睡眠読み書き
ネットワークのIOのrecv送信
ノンブロッキング:プログラムはブロック解除任意のIO操作で実行されていません
彼はプログラムの非ブロッキング状態の遮断が実行することであると述べました
同時:複数のタスクを同時に処理するに表示され、基本的に非常に高速な切り替えを行います
パラレル:複数のタスクを同時に本物の持っている必要がありますマルチコアCPUのみ可能並列に実行します
彼は、同時並列タスクが処理されると
三つの状態を切り替えます
プログラマ永遠のトピック
効率を改善
基本的な方法は、プログラムが可能な限り実行させることです
できるだけIOマルチCPU時間を削減
バッファは、IO操作を低減するために使用されます
理解と破壊のプロセスを作成します。
レシピ:プログラムがあります
プロセス料理:プロセスがあります
二つの方法の工程(フォーカス)
1.直接インスタンス化プロセス、タスクが受信対象で実行されます
マルチプロセッシングインポートプロセス デフ:タスク(N) (N)time.sleep 場合 __name__ == ' __main__ ' : P =プロセス(目標=タスク、引数の=(6 )) )(p.start を
2:継承プロセスクラス、runメソッドが実行メソッドにタスクなりオーバーライド
クラスMyProcess(プロセス): デフ実行します(自己): 印刷(' 121212121 ' ) であれば __name__ == ' __main__ ' : 。MyProcess()開始()
プロセスオブジェクトは、参加機能を含みます
もし __name__ == ' __main__ ' : P =プロセス(目標=タスク、引数=(6 )) p.start() p.join() プリント(' .0.0.0.0。')
ゾンビと孤立を理解します
孤立
子供がまだ実行されている間、親プロセスが終了することを意味し、
無害孤立し、その存在が必要とされます
例:QQはブラウザを開き、QQの最初のブラウザを終了は実行を継続すべきです
孤立したオペレーティングシステムが引き継がれます
ゾンビプロセス
価値は、子プロセスは終わったが、オペレーティングシステムが時間を実行している、などPIDなど、いくつかの情報プロセスを維持します、このプロセスのこの時間は、ゾンビプロセスと呼ばれています
あまりにも多くのゾンビプロセスは、リソースの多くを取る場合は、新しいシステムが得られ、新しいプロセスを開くことができません。
Linuxは、親リソースのための子供のWAI / waitpidの回復を持っています
Pythonは自動的にゾンビを回復します
共通のプロパティ
子供が終了するための#P.join()#待ち
#のp.terminateを()プロセスを終了する#
名前#プリントを(p.name)#プロセス
#プリント(p.is_alive())#生きている
#のp.terminate()#遅延が発生しますので、startコマンドと同様に、オペレーティング・システムに送信されます
#印刷(p.is_alive())
#印刷(p.pid)
#印刷(p.exitcode)終了コード番号を取得します