0

これはこれのフォローアップです。(すべての回答を読む必要はありません。質問だけを読んでください)

人々は私にプロセスとスレッドの違いを説明してくれました。一方で、CPU のすべてのコアを完全に活用できるようにプロセスが必要でした。他方で、プロセス間で情報を渡すことは理想的とは言えず、扱っている巨大なオブジェクトの 2 つのコピーを持ちたくありませんでした。と。

そこで私は、プロセスとスレッドを組み合わせてこれを行う方法を考えてきました。これが理にかなっているかどうか教えてください。私のプログラムの主なプロセスは GUI プロセスです。「rendering-manager」スレッドを生成します。レンダリング マネージャー スレッドはシミュレーションのレンダリングを担当しますが、単独でレンダリングするのではなく、他のプロセスを生成してその作業を行います。

目標は次のとおりです。

  1. レンダリングでは、利用可能なすべてのコアを活用する必要があります。
  2. GUI が遅くなることはありません。

レンダリング マネージャーをスレッドにしたい理由は、多くの情報を GUI と共有する必要があるためです。つまり、シミュレーション タイムラインです。

それで、これは良いデザインだと思いますか?改善のための提案はありますか?

アップデート:

「レンダリング」という言葉を紛らわしく使用して申し訳ありません。レンダリングとは、画面にレンダリングするのではなく、シミュレーションを計算することを意味します。

4

2 に答える 2

2

プロセスを使用する前に、次のことを確認してください。

  • アルゴリズムは、すべてのプロセッサ間で並列化できます。
  • この並列処理が必要です。

私の意見では、良い経験則は次のとおりです。

  1. それを機能させます。
  2. それを正しくしてください。
  3. 速くしてください。

したがって、最初にスレッドを「単純に」使用することをお勧めします。おそらく、シミュレーションを計算する 1 つのスレッドでも十分に高速であることがわかるでしょう。

于 2009-04-10T21:40:26.043 に答える
0

私のプログラムの主なプロセスは GUI プロセスです。「rendering-manager」スレッドを生成します。レンダリング マネージャー スレッドはシミュレーションのレンダリングを担当しますが、単独でレンダリングするのではなく、他のプロセスを生成してその作業を行います。

私はグラフィックス テクノロジの専門家ではありませんが、これは GPU の目的とよく似ています。おそらくpygameはあなたが探しているものですか?

于 2009-04-10T15:41:59.040 に答える