找回密码
 点一下
查看: 941|回复: 1

多个线程和单个线程的效率差距?

[复制链接]
发表于 2012-5-20 15:43:44 | 显示全部楼层 |阅读模式
看下面的例子:一个技能,释放后能够向周围8个方向发射子弹,有两种实现的方法
第一个方法,为每个子弹单独绑定一个计时器,相当于总共起了8个线程,然每个线程处理一个子弹的飞行,击中敌人等操作。

子弹算法1

子弹算法1

第二个方法,将8个子弹放到一个单位组中,由一个计时器集中处理,相当于只起了1个线程

子弹算法2

子弹算法2

想和大家请教一下这两种方法到底哪个好,第一种方法便于理解和实现,但是个人感觉在有的时候效率不高。我对两种方法的效率差距没有具体的概念,想有高手帮助解释一下。
发表于 2012-5-20 16:11:22 | 显示全部楼层
因为jass虚拟机或者说WAR3完全是单线程的,所以无多线程一说,多计时器的也是一个个执行的
从效率上来说,单计时器的当然要好一些,毕竟多事件响应占用更多的效率

但是如何选择,是需要根据制作效果来看的。多计时器的好处是,不必考虑不同子弹运行的起始时间差

如果用一个统一的时间轴,如果0秒时发射第一颗子弹,1秒时发动第二课
当移动周期间隔是1秒的整数倍分之一的话,如0.5秒,使用两种无差别
但是如果是0.4秒,那么第二颗子弹会在1.2秒时第一次移动,也就是移动间隔仅为0.2秒

差别就在这里
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-23 20:21 , Processed in 0.073989 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表