以下のシナリオでは一般的なアーキテクチャレベルの質問があります。スレッド解読
私の製品には、コンポーネントのようなサブシステムがたくさんあります。
各サブシステムを別々のプロセスとして保つのは良いですか?すべてのサブシステムを1つのプロセスで別々のスレッドに保つのがよいでしょうか?
すべての私のサブシステムは、互いにデータを取得/与えるために互いに相互作用することになります。
以下のシナリオでは一般的なアーキテクチャレベルの質問があります。スレッド解読
私の製品には、コンポーネントのようなサブシステムがたくさんあります。
各サブシステムを別々のプロセスとして保つのは良いですか?すべてのサブシステムを1つのプロセスで別々のスレッドに保つのがよいでしょうか?
すべての私のサブシステムは、互いにデータを取得/与えるために互いに相互作用することになります。
スレッドでの問題は安全にそれらの間で直接データを渡すためにあなたがそれらの間の同期のいくつかのフォームを必要とするだろうということです。これを頻繁に実行して、複数のスレッドを使用することによって得られる利点を取り除きます。
私自身の練習は絶対的な必要性がある場合を除き、スレッドを使用しないことです。シリアルやネットワークデバイスなどのハードウェアとインターフェイスする場合は、多くのスレッドを使用しますが、システムレスポンスが大幅に低下する可能性があります。
私は、スレッドが他のコードと(もしあれば)少しの相互作用でそれ自身の上で実行することができるはずルールに行く傾向にあります。あるコードセクションが別のコードセクションに大きく依存している場合、別のスレッドに配置すべきではありません。
あなたは最初に動作し、システムを設計する必要があり、パフォーマンスがスレッドから何らかのメリットがあるかどうかを確認するには、問題を見ているならば、(すべてで別々のライブラリ内の場所・サブシステムのコードを意味する)と。このようにすれば、絶対に必要となるまでスレッドのデバッグの手間を省くことができます。
彼らはKeep It Simpleと言っています。
正当な理由やタスクを作成する必要はありませんか?ちょうどスレッドを使用してください。
この質問は「プロセスとスレッドが何であるかを説明できますか」という単なる別の形式のようです。最初に研究してください。 –
私はそのプロセス、スレッド、すべてのfundasを知っていました。私は、スレッドのクラッシュ、他のスレッドの保護など...あれこれ質問したいと思っていましたが...これについて考えているだけです。 – Muthu
あなたは何を求めていますか? –