タイトルはかなりよく私の質問を要約します。 「どのような状況でスレッドを使用すると、逐次プログラムに利益をもたらすでしょうか?どのような状況では、スレッドを使用するとシーケンシャルプログラムに役立つでしょうか?
0
A
答えて
0
多くの理由とその少し複雑です。だから私は可能な限り貴重なものにしようとします。
すべてのプログラマは並列化できますが、時にはその価値がありません。
マルチスレッドの大きな利点は、すべてのコアの使用です。これにより、パフォーマンスが向上する可能性があります。最適なケースでは、問題に取り組んでいる2つのコアを持つと、実行速度が2倍になります。
一般的なオーバーヘッド:しかし、現実にはこのスピードアップがスレッドからオーバーヘッドの量によってreduzedされます
- スレッド開始/無視するに
- 通信/同期
を停止しますスタート・ストップオーバーヘッド、スレッドの寿命はできるだけ大きくする必要があります。
通信/同期部分が主な問題です。ここでは非常に複雑です。つまり、スレッド間の通信を避ける/減らしてください。各スレッドは可能な限り分離して動作する必要があります。
は基本的にオーバーヘッドと並列性の間のトレードオフです。 キー質問は次のとおりです。
- パフォーマンスに問題はありますか?
- マルチコアにアクセスできますか?
- あなたは、スタック管理のしやすさが必要です( - > 異なるスレッド上の各TCPコネクション)
- あなたは (パラレル対シーケンシャル)複数の解決策をテストして喜んでいますか?詳細については、
関連する問題
- 1. どのような状況で使用するといいでしょうか?
- 2. 原子プロパティはどのような状況で役立ちますか?
- 3. はどのようにAOPは、データバインディングに役立つのでしょうか?
- 4. codeigniter 3でのxssフィルタリングは、どのように役立つでしょうか?
- 5. Times New Roman、Tahomaなどのフォントを任意のサイズで使用するのに役立つでしょうか
- 6. このような状況で「どのように」使用しますか?
- 7. GLibのHashTablesはどのように役立つのですか?
- 8. OpenVZでtarantoolが役立つでしょうか?
- 9. 私はMars Eclipseを更新するのに役立つでしょうか?
- 10. MVVMとは何ですか?どのように役立つのですか?
- 11. AptanaはNetsuite Client Suitecriptの開発にどのように役立つでしょうか?
- 12. Int8(バイト)演算は深い学習にどのように役立つでしょうか?
- 13. log4Jで使用しているときにバッファがAsync Appenderでどのように役立つのですか?
- 14. ループは私がこの状況で使用するでしょう
- 15. VS2010部分データベースプロジェクトは、私のシナリオで役立つでしょうか?
- 16. このスウィフトハッカーを理解するのに役立つでしょう
- 17. 子スレッドはどのように親スレッドに状態/進捗状況を通知できますか?
- 18. この状況では、インタフェースまたは抽象クラスを使用する方がよいでしょうか?
- 19. CPUキャッシュがVisual Studio 2008のコンプライアンス/開発に役立つでしょうか?
- 20. UIスレッドでネットワークコールを行うのはどのような状況で可能ですか?
- 21. シングルコアCPUでThread.SpinWaitはどのように役立ちますか?
- 22. PECL UUIDパッケージ:どのような目的に役立つのですか?
- 23. どのようにCROSS APPLYをこの状況で使用しますか?
- 24. OSPFエリアはスケーラビリティにどのように役立つのですか
- 25. Rubyを使い始めるには? Rubyはどのように使用できますか?それは何のために有名なのですか? DSLはどのように役立つでしょうか?
- 26. 私の状況ではどのMySQLストレージエンジンが良いでしょうか
- 27. GUIの進捗状況にスレッディングを追加するのに役立つ
- 28. ElasticSearchとはどのように役立ちますか?
- 29. 「Service Bus Connect EAIとEDI」は、プライマリSAPを統合するのに役立つでしょうか?
- 30. このような状況で使用するデザインパターンは何ですか?
あなたの質問は非常に広いです。一般的な答えは:「並行して実行できる逐次プログラムにコードのブロックがあると、利益が得られる」しかし、それはテキストの多くの段落に拡張することができます。 –