プロセスとスレッドのパフォーマンスは、どのようにタイムスライスによって変化しますか(実行にどれくらいの時間がかかりますか)。プロセスとスレッド
1
A
答えて
9
私はあなたの質問を次のように言い換えるといいでしょう:単一のアプリケーションで複数のスレッドを処理する必要がありますか、代わりに複数のプロセスを使用する必要がありますか?
この質問では、タイムスライスはまったく重要ではありません。今日のオペレーティングシステムでは、スレッドのスケジュールが設定されており、「プレーン」プロセスは単一のスレッドとして扱われます。
パフォーマンス上重要なのは、作成オーバーヘッドです。プロセスの作成は、通常、スレッドを作成するよりもコストがかかります。マルチ処理アプリケーションは、このコストがプールを使用することを避けます。つまり、新しいプロセスを作成することはめったにありませんが、いくつかのタスクを完了した時点で再利用します。スレッドの作成はまだ高価なので、スレッドを使用してスレッドを作成することがよくあります。
また、通信オーバーヘッドが重要です。スレッドでは、メモリを簡単に共有できます。プロセスでは、通常は物事をコピーします(パイプを使用するなど)。プロセス間でもメモリを共有する方法はありますが、それらは使い方がかなり難しいです。
一般に、スレッドはプロセスよりも速くなければなりません。なぜ人々はまだプロセスを使用していますか?それらはより簡単なプログラミングモデルです。スレッド内の共有メモリのために、間違いを犯すのは非常に簡単で、スレッドセーフではないライブラリ/ APIを持つことができます。スレッド安全性の欠如は、プロセスを使用することによって回避することができます。
関連する問題
- 1. JavaスレッドとUnixプロセス
- 2. プロセスのスレッドとスレッドの違い。
- 3. Aws beanstalk、mod_wsgi、python、プロセスとスレッド
- 4. スレッド通信とプロセス通信
- 5. 共有プロセス/スレッド
- 6. Apache2 wsgiスレッド/プロセス
- 7. Linuxのプロセスとスレッドの区別
- 8. アプリケーション内部のスレッドとサーバーのプロセス
- 9. プログラミングライブラリまたはモジュール内のプロセスとスレッドは、プロセス、カーネルレベルのスレッド、またはユーザーレベルのスレッドを意味しますか?
- 10. スレッド同期 - プロセスの最大スレッド数
- 11. CLR管理スレッド:軽量プロセスと重いプロセス
- 12. パブのプロセスIDを取得すると、そのスレッド/プロセスが終了します
- 13. プロセスのすべてのスレッドのスレッドを印刷します
- 14. スレッド対プロセス:スレッド内でicmpパケットの作成が失敗する
- 15. プロセスを終了する1つのスレッド
- 16. Linuxのユーザースペースのスレッド、カーネルスレッド、軽量プロセス
- 17. プロセスはスレッドより遅いです
- 18. プロセスを行うか、スレッドがJAVA
- 19. 子プロセス内にスレッドを作成する
- 20. 差分B/W TCB(スレッド制御ブロック)とPCB(プロセス)
- 21. プロセスの優先順位とスレッドの優先順位
- 22. Androidのプロセスのスレッドによるリソース(CPUとメモリ)の使用
- 23. WebホスティングのPHPと比較してPythonのプロセス、スレッド
- 24. ThreadPoolsと長時間実行のプロセス用のスレッド
- 25. Pythonスレッドとタイマー関数を作成するプロセス
- 26. スレッドIDとプロセスIDは一意ですか?
- 27. プロセスIDが与えられたプロセスのすべてのスレッドを見つける
- 28. スレッドがプロセスと共有していないことは何ですか?
- 29. 名前付きパイプとWCFサービスとのプロセス間通信:スレッドの発行
- 30. スレッドがクラッシュした場合、スレッドやプロセスが改善されます。
スレッドなしのプロセスはありません。プロセスとは、少なくとも1つのスレッド、主スレッドを持つスレッドのグループです。 – Havenard
@madhu - 質問を言い換えると、複数のプロセスを使用する場合と複数のスレッドを使用する場合の相対的なメリットについて質問しているようですが、質問に集中する必要があります。 –