zoukankan      html  css  js  c++  java
  • 智能预判 (一:线程的开启)

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

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

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

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

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

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

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

    人物移动 一条线程。

    人物血量增减一条线程。

    优点:碰撞检测效率快。

    缺点:刷新不同步。

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

    优点:速度相对快。

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

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

    有点:数据检索 简单。

    缺点:速度相对慢。

    通俗解释

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

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

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

    不可采用

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

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

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

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

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

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

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

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

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

    对大局不会太多影响。

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

  • 相关阅读:
    ListenerExecutionFailedException: Listener threw exception
    SpringCloud网关无法加载权限及IP黑名单白名单
    IDEA引入jar但无法导入class
    net.sf.jsqlparser.statement.select.PlainSelect.getGroupBy()Lnet/sf/jsqlparse
    mysql索引
    selenium
    Zuul的容错与回退与Zuul的高可用
    fastjson json转linkedhashmap为null
    微信H5支付签名校验错误
    追踪线程
  • 原文地址:https://www.cnblogs.com/big-zhou/p/5453063.html
Copyright © 2011-2022 走看看