精华内容
下载资源
问答
  • 同步是啥
    千次阅读
    2020-10-01 10:16:08

    本文是我对这个问题的个人理解,文中的“进程”也可以换成线程

    首先需要明白广义上的“同步”,所谓同步,即在一定条件下应当发生什么事件

    1. 如果只有一个进程,那么进程同步指的是这个进程每次运行时的过程是一样的。而现在的操作系统在多道程序设计的背景下,进程基本上是异步的,即每次运行的过程都是不一样的。但是结果可能是一样的。

    2. 如果有两个进程A和B(一般是协作关系),那么进程同步的意思是说,两个进程的运行过程是相互制约的。相反,异步就是说两个进程各走各的,不会考虑另一个进程的状态。可想而知,两个异步运行的进程如果是协作关系,那么很有可能出现不协调的情况(竞争条件的出现)。

    3. 两个以上进程的同步与两个进程的情况类似。

    “互斥”只是为了实现进程同步而使用的一种手段。

    更多相关内容
  • 两种同步模式:帧同步和状态同步

    千次阅读 2021-03-20 16:07:04
    同步 所谓同步就是要一个游戏中的所有客户端的表现效果是一致的 就拿王者荣耀来说 十个玩家所有数据都是同步的,比如位置 技能cd 技能角度 单个英雄状态等 这个就是同步 同步是一个网络游戏的概念,单机游戏是没有...

    同步

    所谓同步就是要一个游戏中的所有客户端的表现效果是一致的
    就拿王者荣耀来说 十个玩家所有数据都是同步的,比如位置 技能cd 技能角度 单个英雄状态等 这个就是同步
    同步是一个网络游戏的概念,单机游戏是没有同步的概念的

    状态同步

    原理

    状态同步的战斗逻辑写在服务器端,包括技能释放,普攻,伤害,移动等等一系列内容
    由于核心逻辑必须知道一个场景中的所有实体的情况,所以就必须把战斗逻辑写在服务器端
    比如魔兽争霸的客户端承载有限,并不能把所有的地图的实体展现出来,所以客户端没有足够的信息计算全图的内容、

    状态同步之下,客户端向是一个个服务器端数据的表现层
    就拿一个英雄来说它所有的属性(血量,物理攻击,魔法攻击,物抗,魔抗等等)都是服务器端传输给客户端的
    而且在属性发生改变的时候,服务器需要实时通知客户端发生了哪些改变,
    客户端不能改变这些属性 他只是将服务器端传输过来的数据显示出来

    再举个例子
    假如说王者荣耀里边后移释放大招,这时候客户端通知服务端:我要释放大招
    服务器通知客户端:在什么位置释放什么方向释放的信息
    客户端通过这些信息创建一个特效在某地 然后向这个方向 飞行
    然后服务端根据碰撞等逻辑判断 如果击中可击中的物体 产生相应的效果

    帧同步

    原理

    帧同步下比较简单,服务端只负责转发,不做任何逻辑处理
    假如在王者荣耀中一个英雄释放技能 他将会通知服务端 然后服务端通知其他客户端
    实现同步的功能

    比较著名的就是王者荣耀

    流量消耗

    状态同步比帧同步消耗大
    在一个复杂的游戏中 在拿王者荣耀来说 所有属性 每个英雄独特的buff 其他英雄的debuff加起来可能好多好多属性
    每次改变都要同步一次属性,那样的话消耗是巨大的
    帧同步不需要同步属性 只需转发一次操作 所以状态同步的消耗是大于帧同步的
    同理:状态同步的服务器压力比较大 因为要做更多的运算

    战斗回放&观战模式

    王者荣耀中有保存战斗回放和观战的机制
    对于这两个状态同步比较好做
    因为只需要保存这场战斗中所有人的操作即可
    我们实现一个回放&观战服务器,战斗一旦开始,战斗服务器就给客户端发消息的同时
    把这些消息传递给回放&观战服务器 如果有其他客户端请求观战或者回放,将回放&观战服务器上的数据按时间传递过去给客户端即可

    安全性

    状态同步的安全性比帧同步的安全性要高很多
    因为状态同步的所有逻辑和数值都是在服务器端的,
    如果想要作弊,就需要攻击服务器 但是攻击服务器的难度比客户端要高很多很多 而且容易被追踪

    而帧同步所有数据都在客户端,所以解析客户端的数据就很容易达到自己想要的效果

    开发效率

    状态同步的游戏占主流,同时状态同步的游戏开发难度要高于帧同步
    同一套方案可以给很多不同类型的游戏使用,都是转发操作(减少了服务端和客户端之间的沟通)

    断线重连

    状态同步的断线和好做,因为就是把整个场景和角色重新生成一次,各种数值根据服务端传给客户端即可
    但是帧同步断线重连就比较麻烦,因为中间可能产生时间差 这可能造成游戏逻辑运行速度加速(追上现在进度)
    这也就是王者荣耀中断线重连之后 游戏速度加快很多的原因

    以上就是关于帧同步和状态同步的知识
    希望对大家有所帮助

    参考知乎大佬的文章 附上链接https://zhuanlan.zhihu.com/p/36884005

    防外挂

    上边简单说了一下服务器的防攻击机制高于客户端 所以状态同步的攻击难度高于帧同步
    但是也不至于为了更难攻击 我们专门去使用状态同步去开发
    所以就需要对帧同步进行放外挂(破解)机制
    1.因为每个玩家都有独立的完整的运算逻辑,所以玩家之间可以进行互相校验(三人以上)以实现查出外挂玩家所在
    2.添加一个空白客户端 只用于校验其他玩家(3人一下适用)
    3.服务器辅助验证

    展开全文
  • JavaScript同步和异步 JS语言的一大特点是单线程,同一时间只能做一件事。意味着一件事结束以后 才能进行下一件事。 HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程。于是有了同步和异步。 同步: 前一个...

    JavaScript同步和异步

    JS语言的一大特点是单线程,同一时间只能做一件事。意味着一件事结束以后 才能进行下一件事。

    HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程。于是有了同步和异步。

    同步:

    前一个任务结束后再执行后一个任务,程序执行顺序与任务的排列顺序是一致的、同步的。

    异步:

    在做一件事的同时可以处理其他事件。

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>同步和异步</title>
    </head>
    <body>
        <script>
            console.log('第一条语句');
            setTimeout(function(){
                console.log('第二条语句');
            },5000)
            console.log('第三条语句');
        </script>
    </body>
    </html>
    

    输出结果时,先显示第一条语句,再显示第三条语句,等待5秒后显示第二条语句。

    在这里插入图片描述

    同步和异步的区别是在流水线上各个流程的执行顺序不同

    当定时器的时间为0的时候,会是什么样的打印顺序呢?将上面程序的定时器时间更改为0,执行程序,发现输出顺序并没有改变。

    JS将所有的任务分为两大类,同步任务和异步任务

    同步任务放在主线程上执行,形成了一个执行栈;异步都是通过回调函数实现的。

    常见的异步任务有三类:

    1. 普通事件:如click、resize等。
    2. 资源加载,如load、error等。
    3. 定时器,包括setInterval、setTimeout等。

    先执行执行栈中的同步任务,异步任务放入任务队列中,一旦执行栈中的多有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈。

    展开全文
  • 小米progtx同步驱动

    2019-01-21 19:31:01
    小米同步.zip,小米同步,MiTongBu-0.1.50.msi,MiService2_Setup_Domestic_3.0.0.48_20180614_1511X.exe,安装顺序.txt,VCREDIST_X64.EXE
  • 绿达同步整流芯片GR8387适用于LLC/QR大功率电源,脚位兼容于IR1167  GR8387简介  GR8387 是一同步整流芯片,用于Flyback电源中次级电路 N通道MOS管同步整流的控制,GR8387 可以控制一个或多个并联的整流MOS管, ...
  • 阿里redis-shake同步工具
  • ESP8266上电同步

    2021-05-19 18:26:19
    ESP8266上电同步 先按FLASH和RST,点击STAR后,松开RST,等有下载进度条出现时,再松开FLASH。

    ESP8266NodeMCU上电同步

    先按FLASH和RST,点击STAR后,松开RST,等有下载进度条出现时,再松开FLASH。
    在这里插入图片描述
    ESP8266-01S烧写固件
    将IO0接地,待上电同步显示后,插拔VCC即可

    展开全文
  • sourceInsight工程同步

    千次阅读 2020-11-18 20:24:37
  • Git - 代码同步的两种方式

    千次阅读 2019-12-23 18:14:20
    git pull pull操作相当于先做了fetch操作,然后紧接着做了git merge的操作。它会先从 .git/config 中查找本地当前所在分支对应的远程分支配置,比如: [branch "master"] remote = origin merge = refs/heads/master...
  • Vscode 同步设置,以及插件

    千次阅读 2020-11-03 22:19:17
    Vscode更换新设备时,如何同步所有配置 讲真,这个也很多,但是又是打开旧设备Vscode,又是打开Github,又是传入token,最后还得记住什么gist ID ,云云云云。。我每天用六位的密码去保护我两位的余额已经够心累的了...
  • Linux多线程同步方式

    2021-01-09 15:47:00
    需要同步,一件事情逻辑上一定是有序的,即使在并发环境下;而操作系统对于多线程不会自动帮我们串行化,所以需要我们通过操作系统提供的同步方式api,结合自己的业务逻辑,利用多线程提高性能的同时,保证业务...
  • HashTable同步,而HashMap非同步,效率上比HashTable要高 异步就是一个对象可以同时给多个线程访问,同步就是一个对象只能给一个线程访问,其他线程都得排队等着。 ...
  • 来源: 在读《Redis设计与实现》的AOF持久化时,讲到了AOF文件的写入与同步时,对于flushAppendOnlyFile函数,它就是实现持久化的函数,把内存中数据写入文件,这个函数的行为是由服务器配置的appendfsync选项的值...
  • 数据异构实时同步是指将数据从源端数据库近实时的同步至目的端数据库的一个过程,比如将 SQLServer 中的数据同步至 HBase 或 Kafka 中。不同于离线同步,实时同步需要解决变更数据采集与数据时序等问题,以此保证...
  • 同步技术下一个准确的定义相当困难,当两个设备一起工作并对时间有精确要求时,就需要在它们之间进行同步。 载波同步 同步是通信系统中一个重要的实际问题。在通信系统中,同步具有相当重要的地位。通信系统能否...
  • 一、同步和异步 同步与异步是指访问数据的机制,同步一般指主动请求并等待IO操作完成的方式。 异步则指主动请求数据后便可以继续处理其它任务,随后等待IO操作完毕的通知。 同步和异步最大的区别就在于:同步需要...
  • 一般游戏网络同步分为帧同步和状态同步。对于这两种同步我看到网上很多人有不同的理解。       1、如果按字面意思理解,帧同步设置了一个同步帧,把逻辑层和表现层完全分离。可是状态...
  • 若依 自动生成代码 同步到项目

    万次阅读 2020-09-05 19:08:04
    如果没有部署好若依项目,可以看 二分钟开启若依后台部署 走流程 在平台里找到代码生成 导入数据库某个表 生成信息里选择自定义路径 ...选择完信息后(包含提示必填的填完)保存 ...在项目中刷新一下,就看到了生成...
  • webstorm-settings:WebStorm设置同步回购
  • 什么是线程同步

    千次阅读 2019-02-22 11:18:59
    线程有自己的私有数据,比如栈和寄存器,同时与其它线程共享相同的虚拟内存和全局变量等资源,当多个线程同时读写同一份共享资源的时候,会引起冲突,这时候就需要引入线程同步机制使各个线程排队一个一个的对共享...
  • 什么是Handler的同步屏障机制?

    千次阅读 2021-06-10 15:15:55
    然而在我们使用的时候,往往会忽略掉一些不常见却又很重要的内容,今天就来讲一讲经常被忽略的同步屏障以及异步消息。 制流程中窥视handler同步屏障 为了引出今天的主题,我们先来看看ui的渲染流程吧。在Android的...
  • java中同步与异步区别是什么

    千次阅读 2021-02-12 11:06:00
    一、同步与异步概念:(推荐:java视频教程)1.同步:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的...
  • 我们从特斯拉汽车开始说起,特斯拉这个名字是为了纪念尼古拉·特斯拉现代交流电力系统的建立者,电机工程学的先驱。...按照电机转子转速与定子旋转磁场的转速进行划分,两者相等称为同步电机,不相等称为异步电机(...
  • 据了解,在8月之后的两个月间,《王者荣耀》技术团队对这个产品进行了非常深度的优化,并攻克了局内同步、网络要求,以及性能表现的三大难关,成功达到了腾讯六星产品的标准。比如延迟、卡顿等不同步问题的出现概率...
  • 这样写很麻烦,并且写着写着,估计自己都不知道这是了,很容易写晕。 方法2: 我们定义全局变量。模块a的数据赋值给全局变量x。然后模块b获取x。这样我们就很容易获取到数据 2. Vuex Vuex 是一个专为 Vu
  • 什么是同步? 什么是异步?

    千次阅读 2019-12-04 11:40:58
    1. 同步 客户端必须等待服务器端的响应,在等待期间客户端不能做其他操作。 2. 异步 客户端不需要等待服务器的响应,在服务器处理请求的过程中,客户端可以进行其他操作。 ...
  • 我们曾在一期语音里和大家讲探讨过垂直同步的功用,可惜语音有 60 秒的长度限制,并不能和大家解释清楚,那么今天就来详细分析一下“垂直同步”: 它到底是干嘛用的? 它有什么缺点吗?
  • 网络游戏开发项目中帧同步,状态同步如何选? 网络游戏的核心技术之一就是玩家的网络同步,主流的网络同步有”帧同步”与”状态同步”。今天我们来分析一下这两种同步模式。同时教大家如何在自己的项目中采用最合适的...
  • 我本来是打算写一篇co源码精读(为读co,因为它短),然鹅发现自己存在一系列基础问题没有搞透彻,打算写一个js基础系列文章,总结自己的理解(copy),希望与你在学习路上一同进步。首先问问自己当面试官问到js中的...
  • 大数据之路:数据同步

    千次阅读 2022-01-13 20:44:04
    从业务系统同步数据到数据仓库的数据同步总的说来分为三种,直连同步(侵入式),数据文件同步,数据库日志解析。 直连同步:通过JDBC方式直接连接源系统抽取数据,当数据量大时容易对数据库造成压力甚至拖垮数据库的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,701
精华内容 48,280
关键字:

同步是啥