• 其他语言



针对游戏的线程基本信息
页面和feed选项
打印
收藏此页
Digg此页 | 添加到您的del.icio.us帐号
目录

线程处理概要
我们将“线程处理”定义为在不同处理器上同时运行不同的代码段。下图显示了单线程处理与双线程处理之间的差异。单线程代码在运行过程中连续执行。请注意,双线程代码有两个代码段在运行期间并发执行。通过同时运行这两个可并行的代码段,现在执行整个运行过程所用的时间变少了(请注意虚线区域)。



图 1 显示了图中的不均衡情况。这种不均衡情况是指两个并行代码块没有同时完成其执行任务。这两个块没有同步完成其执行任务的原因在于,它们要完成的工作量不相等。应该注意到这一点,因为正确均衡线程在游戏线程处理中是非常关键的。

图中的屏障表示所有线程完成其执行任务之前等待的时间。等待是很关键的,因为您不想让并行代码覆盖其串行代码的执行。(在本示例中,串行代码取决于并行代码段的结果。)

并行模型



有两种类型的并行模型:数据分解功能分解。简言之,数据分解就是对单个功能进行线程处理,以同时在两个或多个数据块上操作。另一方面,功能分解必须将不同的功能代码块置于不同的线程上,以充分利用并行优势。

本文仅涉及到功能分解,原因有两个:a.) 与数据分解模型相比,它适用于更多游戏;b.) 实现这种分解更难一些。有关游戏中的两种不同并行模型的深入讨论,请参阅本文的“其他资源”部分。
上一部分1  2  3  4  5  下一部分

第 2 页, 共 7 页