0

这是对此的跟进。(您不必阅读所有答案,只需阅读问题)

人们向我解释了进程和线程之间的区别。一方面,我想要进程,这样我就可以充分利用 CPU 的所有内核,另一方面,进程之间的信息传递不太理想,我不想拥有我正在处理的巨大对象的两个副本和。

所以我一直在想一种方法来做到这一点,结合进程和线程;告诉我这是否有意义。我的程序中的主要进程是 GUI 进程。我会让它产生一个“渲染管理器”线程。渲染管理器线程将负责渲染模拟,但是,它不会自己渲染它们,而是派生其他进程来为它完成工作。

这些是目标:

  1. 渲染应该利用所有可用的核心。
  2. GUI 永远不应该变得迟缓。

我希望渲染管理器成为线程的原因是它必须与 GUI 共享大量信息:即模拟时间线。

那么你认为这是一个好的设计吗?你有什么改进的建议吗?

更新:

对不起,我对“渲染”这个词的使用令人困惑。渲染是指计算模拟,而不是在屏幕上渲染。

4

2 回答 2

2

在使用流程之前,请确保:

  • 您的算法可以在所有处理器之间并行化。
  • 你需要这种并行性。

在我看来,一个好的经验法则是:

  1. 让它起作用。
  2. 改正它。
  3. 快一点。

所以我建议先“简单地”使用线程。也许您会意识到,即使使用一个线程计算模拟,它也足够快。

于 2009-04-10T21:40:26.043 回答
0

我的程序中的主要进程是 GUI 进程。我会让它产生一个“渲染管理器”线程。渲染管理器线程将负责渲染模拟,但是,它不会自己渲染它们,而是派生其他进程来为它完成工作。

我不是图形技术方面的专家,但这听起来很像 GPU 的用途。也许pygame更符合您的要求?

于 2009-04-10T15:41:59.040 回答