English 中文(简体)
后续:Python模拟软件的多处理器或多线程
原标题:
  • 时间:2009-04-10 14:41:10
  •  标签:

这是这个。(你不必阅读所有答案,只需阅读问题)

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

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

这些是目标:

  1. Rendering should take advantage of all the cores available.
  2. The GUI should never become sluggish.

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

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

更新:

很抱歉我混淆了“渲染”这个词。我所说的渲染是指计算模拟,而不是在屏幕上渲染。

问题回答

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

  • Your algorithm can be parallelized between all the processors.
  • You need this parallelism.

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

  1. Make it work.
  2. Make it right.
  3. Make it fast.

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

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

我不是图形技术专家,但这听起来很像GPU的用途。也许pygame是你想要的更多吗?





相关问题
热门标签