智能预判 (一:线程的开启)

单线程模式,在大数据量 运算下,肯定效率 没有  多线程快,所以,在设计初期,我就定下了 多线程方案。

下面是 计划 多线程方案的  几个备选方式。

一:单人 多线程 异步并发方案。

己方人物碰撞检测 敌方 一条线程。

敌方人物碰撞检测 己方 一条线程。

己方 子弹 碰撞检测 敌方 一条线程。

敌方 子弹 碰撞检测 己方 一条线程。

人物移动 一条线程。

人物血量增减一条线程。

优点:碰撞检测效率快。

缺点:刷新不同步。

二:单人单线程 同步并发方案。

优点:速度相对快。

缺点:数据检索比较麻烦。

三:多人多线程 同步并发方案。

有点:数据检索 简单。

缺点:速度相对慢。

通俗解释

一个网吧,100台 电脑。玩家必须 打开网页,打开客户端游戏,打开qq。

第一种方案:网吧 每次 进来一个玩家,他同时 在三台机器上,操作 这三个步骤。那么,他速度肯定最快。

但是,虽然同时点开,但这三台 机器不一定 同时 能运行开启,所以不能同步。

不可采用

第二种方案:网吧 开始进来100 个玩家,他们都 顺序 执行这 三个步骤,由于有些人操作快,有些人 操作慢,所以

先完成的 人,离开 网吧,让在外面 的人进来继续。

这个和我们日常的 方式 很像,效率是所有方案之中最快的。但是,优先完成 离开的玩家,肯定要 告诉 网吧管理员。

这样 就 让 网吧管理员 非常的 忙碌了。最后有可能变成  大量完成的 玩家 等待 管理员 放行。

第三种方案:网吧 开始进来100个 玩家,同样也是 都顺序执行这三个步骤,虽然有些人快,有些人慢,但他们必须等

所有人都完成,统一到网吧 管理员那边 申请离开,由于他们都是 排好队 依次申请离开的,所以网吧管理员 非常简单的就处理完,然后

统一 再让 外面 100个人 进来。

这个步骤,看起来会有点问题,比如 100人中,有个特别慢的人,大家是不是都要等他,之类的问题。我之前也考虑过。

但只要我让 100台电脑,分成 多组,也就是 10台电脑 一个区,总共10个区。那么最多也就是 某个区,10个人一起慢点,

对大局不会太多影响。

 这次先这样,先不上代码了。下一篇,结合代码继续深入分析。 

原文地址:https://www.cnblogs.com/big-zhou/p/5453063.html