マルチプロセスの2つの実施形態

1234 ワード

10個の処理時間が10秒の同じプロセスが実行されると.
n1 	n2 	n3 		. . . 		n8 	n9 	n10

プロセスを分割して実行


プロセスを部分的に分割して実行し、実行を続行します。


n 1秒で対応するタスクを実行
n 2 1秒のタスクを実行する
.
.
.
n 10 1秒のタスクを実行する
n 1秒で対応するタスクを実行
n 2秒対応タスクの実行
.
.
.
n 10 2秒のタスクの実行
.
.
.
n 1 10秒のタスクの実行
n 2 10秒のタスクの実行
.
.
.
n 10秒タスクの実行
n 1タスク完了時間100秒
n 2ジョブ完了時間100秒
n 3操作完了時間は100秒
タスク完了時間10*10=100秒+α : 前処理時間10 x 10(nが実行されるたびに繰り返される)
単純なマルチプロセス(1~2プロセス)を実装すると、大きな問題は発生しませんが、プロセスが多くなり、論理が複雑になると、作業時間が遅れる可能性があります.

マルチプロセスのメリット


プロセスは独立しているため、1つのプロセスに問題が発生しても、他のプロセスには影響しません.

その他


マルチスレッドに比べて、リソースの効率が低いと考えられます.
これは、複数のプロセスを処理する必要がある場合に同じデータを使用し、これらのデータを1つのディスクに配置し、すべてのプロセッサ(CPU)を共有することによって補うことができる.

1.メッセージキュー


同じリソースにアクセスするときに順番に処理されるため、問題が発生する確率は低い.
キューに管理されているリソースが多すぎると、処理速度が低下する可能性があります.

2.共有ストレージ


データの処理が容易で、処理速度が速い

注)(単一プロセス)プロセスを順番に実行


1つのプロセスが完了したら、次のプロセスを続行するにはどうすればいいですか?


n 1終了後運転n 2
n 2終了後、n 3運転
.
.
.
n 9完了後、n 10運転
n 1タスク完了時間10秒
n 2操作完了時間20秒
n 3操作完了時30秒
タスク完了時間10*10=100秒+α : 前処理時間10