智能预判 (一:线程的开启)
单线程模式,在大数据量 运算下,肯定效率 没有 多线程快,所以,在设计初期,我就定下了 多线程方案。
下面是 计划 多线程方案的 几个备选方式。
一:单人 多线程 异步并发方案。
己方人物碰撞检测 敌方 一条线程。
敌方人物碰撞检测 己方 一条线程。
己方 子弹 碰撞检测 敌方 一条线程。
敌方 子弹 碰撞检测 己方 一条线程。
人物移动 一条线程。
人物血量增减一条线程。
优点:碰撞检测效率快。
缺点:刷新不同步。
二:单人单线程 同步并发方案。
优点:速度相对快。
缺点:数据检索比较麻烦。
三:多人多线程 同步并发方案。
有点:数据检索 简单。
缺点:速度相对慢。
通俗解释
一个网吧,100台 电脑。玩家必须 打开网页,打开客户端游戏,打开qq。
第一种方案:网吧 每次 进来一个玩家,他同时 在三台机器上,操作 这三个步骤。那么,他速度肯定最快。
但是,虽然同时点开,但这三台 机器不一定 同时 能运行开启,所以不能同步。
不可采用
第二种方案:网吧 开始进来100 个玩家,他们都 顺序 执行这 三个步骤,由于有些人操作快,有些人 操作慢,所以
先完成的 人,离开 网吧,让在外面 的人进来继续。
这个和我们日常的 方式 很像,效率是所有方案之中最快的。但是,优先完成 离开的玩家,肯定要 告诉 网吧管理员。
这样 就 让 网吧管理员 非常的 忙碌了。最后有可能变成 大量完成的 玩家 等待 管理员 放行。
第三种方案:网吧 开始进来100个 玩家,同样也是 都顺序执行这三个步骤,虽然有些人快,有些人慢,但他们必须等
所有人都完成,统一到网吧 管理员那边 申请离开,由于他们都是 排好队 依次申请离开的,所以网吧管理员 非常简单的就处理完,然后
统一 再让 外面 100个人 进来。
这个步骤,看起来会有点问题,比如 100人中,有个特别慢的人,大家是不是都要等他,之类的问题。我之前也考虑过。
但只要我让 100台电脑,分成 多组,也就是 10台电脑 一个区,总共10个区。那么最多也就是 某个区,10个人一起慢点,
对大局不会太多影响。
这次先这样,先不上代码了。下一篇,结合代码继续深入分析。