当前课程知识点:游戏程序设计 >  第十四章 《分布式系统设计 》 >  14.5 超时处理 >  14.5 超时处理

返回《游戏程序设计》慕课在线视频课程列表

14.5 超时处理在线视频

下一节:14.6 大系统小做(上)

返回《游戏程序设计》慕课在线视频列表

14.5 超时处理课程教案、知识点、字幕

那么前面我们讲

我们在CPU调动的时候

或者是我们发现

当一个任务需要去 阻塞在那里

需要等待数据来

我们这时候要放出CPU

或者叫我们要让渡出CPU

那等到我的数据到达之后

我再来继续执行

那这里有一个问题

就是说

如果我需要的数据一直都不来怎么办

那这种情况

什么情况下可能发生的

比如说我们需要去第三方的服务器上

去调用一个借口

但是很不幸

第三方服务那边它们的网络出了问题了

他们内部的节点出了问题

他没有给我们响应

那么这个时候

是不是我们一直等在这里

一直等到天荒地老

等不到对吧

举个简单的例子

我们玩游戏的时候

我可能放了一个技能

这个技能放出去之后

一直得不到响应

那么对于我们玩游戏的客户端上来讲

会看到这句话对吧

大家会看到一个在这里一个loading状态

就卡在这里

那么如果一直卡在这里

那怎么玩了这个游戏就没法玩了

整个界面都卡死了

那么所以

对于我们需要等待

第三方数据回来

我们把它的设置一个时间

一段时间以后

我就不会再等了

这个时候我需要

通过各种方式来告诉用户

比如说我会直接返回个错误码

告诉那个用户说

现在服务

可能出了点问题

你重试一次

或者是过一会儿再来对吧

这个时候让用户或者玩家

能够知道

现在这个地方

或者这个界面或者这个操作可能有问题

那我们换一个地方

或者是过一会儿重试一下

那么

像这种我等待一段时间

需要继续去处理一些事情的时候

这里我们把它叫做一个超时的问题

那么超时的这种问题

除了我们程序

后来我们做开发过程中会遇到

那么在生活中

其实大家也会经常会遇到这种问题

那么简单来讲

就说我们可能会设个闹钟

比如明天早上

我可能因为有点事情要六点钟起床

那我们会把

闹钟定到明天早上六点

那么时间到了之后

他会通知我

做什么事情对吧

那么提醒我一件事情要做

那么在手机上就更方便了

大家会在手机上去定很多个闹钟

同时在可能不同的时间点

去提醒大家做什么事情

这是我们生活中的一些

关于时间的一些

超时的一些提醒

一些方案

就说我们说的技能冷却

大家玩王者荣耀的时候点了一个技能对吧

它有三个技能

给你有普通技能还有大招技能对吧

那么你用完了之后

他是要有冷却的

这个是一个所谓的定时

那么其实还有很多

比如说我们场景里面的野怪的刷新

对吧

他是也是有倒计时的对吧

还有其实大家可能会看不到的

当一个游戏里面的角色

它做一个动作

进行一个砍人的动作的时候

它实际上也是有CD的

只是这个CD时间可能很短

大家感受不到

否则的话

你可能会就无限的连招对吧

无限的无限的对吧

这个动作攻击下去

他中间是有CD的一个间隔的

所以从这里我们大家

稍微稍微去想一想

就会发现它游戏里面其实有大量的地方

会用到定时器

甚至很多地方

我们都可能都没有意识到

他是个定时器的这个概念

那么

我们简单的算一下

每个玩家

假如他有

五个吧

五个定时器

那如果我们有一百万个玩家

是不是实际上在服务器端

我们分布式系统里面要处理五百万的定时器对吧

那么这种大量的定时器

我们在处理过程中

如何去管理

如果说我们生活中

有大量的这样的定时器

每个人可能带的有几个吗

如果真的让一个人管理

成千上万的定时器可能会崩溃了

没法去弄

那么可能

一直处在这种被倒计时啊

被定时器打断的一个情况

那么对于程序来讲

他就很好

它就非常擅长于做这种机械化的

这种程序化的事情

所以这里回到一个问题

我们如何管理

分布式系统中的那种成千上万的一个定时器

那么对于定时器来讲

它的业务模型

相对来讲

不是那么的复杂

因为它就是

用的时候开启一个定时器

这个定时器

比如说十秒以后吧

前面我们想到我们的IO

我们等待IO的时候

我们可能不想等太长时间

我等了一段时间之后

我需要有一个保底的机制

那就十秒钟之后

我一定会要去给用户一个反馈

无论是对是错

那么我们开启一个十秒钟的一个定时器

那么定时器到了之后

需要能够触发我的超时逻辑

对吧

那么这里的问题是谁来处理

谁来触发

对吧

生活中的话我们是交给了闹钟

对吧

交给他手机里面的闹钟

进门的日历或者是叫闹钟

那么在我们程序里面

管理这么大量级的定时器

那么需要有一个叫

定时器的管理器

它专门负责管理

海量的一个定时器

那么

既然它要管理的话

那么就需要有一个管理的算法

这个管理的算法我们会考虑

它的一些性能指标

对吧

他的及时性

那么常见的这些定时器管理的算法

比如有些红黑树算法

最小堆算法

还有右边

大家看到一个时间轮

时间轮的这种算法

每一种定时器处理的一个算法

它都是有一个

有自己的优点

一些自己擅长的一些场景

比如说像

我可能在性能上更强对吧

各种插入和删除的性能对吧

那么它表示的精度

比如它的时长范围

可能相对来讲就没那么久

比如说可能20年以后的

别说几年以后的定时器

这种当然我们通常不需要那么长呢

但是它不同的维度

都有自己的优点

自己擅长的地方

那么这一块的话

大家课后可以去

进一步的对这一块进行一个学习

游戏程序设计课程列表:

第一章 《游戏开发导论》

-1. 1什么是游戏(上)

--1.1 什么是游戏(上)

--选择题

-1.2 什么是游戏(下)

--1.2 什么是游戏(下)

--选择题

-1.3 游戏是如何开发出来的

--1.3 游戏是如何开发出来的

-1.4 游戏引擎(上)

--1.4 游戏引擎(上)

-1.5 游戏引擎(下)

--1.5 游戏引擎(下)

--单选题

-1.6 如何成为一个游戏开发者

--1.6 如何成为一个游戏开发者

--多选题

第二章 《游戏服务器概述 》

-2.1 什么是游戏服务器

--2.1 什么是游戏服务器

--单选题

-2.2 游戏服务器的和分类发展

--2.2 游戏服务器的和分类发展

--单选题

-2.3 核心技术和实现难点

--2.3 核心技术和实现难点

--单选题

-2.4 设计原理与方法论

--2.4 设计原理与方法论

--单选题

第三章 《《三维几何学基础》 》

-3.1 三维坐标系统

--3.1 三维坐标系统

--多选题

-3.2 向量与运算

--3.2 向量与运算

--单选题

-3.3 矩阵与线性变换

--3.3 矩阵与线性变换

--双选题

-3.4 四元数

--3.4 四元数

--多选题

第四章 《游戏循环及实时模拟》

-4.1 游戏循环概述(上)

--4.1 游戏循环概述(上)

--多选题

-4.2 游戏循环概述(下)

--4.2 游戏循环概述(下)

--单选题

-4.3 《无尽之路》的实现

--4.3 《无尽之路》的实现

--单选题

-4.4 支撑游戏的功能

--4.4 支撑游戏的功能

--选择题

-4.5 支撑游戏的机制与系统

--4.5 支撑游戏的机制与系统

--多选题

第五章 《随机数在游戏中的应用》

-5.1 基本介绍

--5.1 基本介绍

--单选题

-5.2 随机数生成器

--5.2 随机数生成器

--单选题

-5.3 随机数分布与应用

--5.3 随机数分布与应用

--单选题

第六章 《游戏性系统》

-6.1 什么是游戏玩法开发

--6.1 什么是游戏玩法开发

--单选题

-6.2 建立愿景 Vision

--6.2 建立愿景 Vision

--单选题

-6.3 划定边界 Scope

--6.3 划定边界 Scope

-6.4 迭代 Iteration

--6.4 迭代 Iteration

--单选题

-6.5 迭代 Iteration+抛光Polish

--6.5 迭代 Iteration+抛光Polish

--单选题

第七章 《实时图形渲染管道》

-7.1实时图形渲染管道 宏观渲染系统

--7.1实时图形渲染管道 宏观渲染系统

--单选题

-7.2实时图形渲染管道 应用阶段

--7.2实时图形渲染管道 应用阶段

--单选题

-7.3实时图形渲染管道 几何阶段

--7.3实时图形渲染管道 几何阶段

--单选题

-7.4实时图形渲染管道 光栅化阶段

--7.4实时图形渲染管道 光栅化阶段

--单选题

-7.5实时图形渲染管道 总结 参考

--7.5实时图形渲染管道 总结 参考

第八章 《材质着色与光照》

-8.1 物理回顾1

--8.1 物理回顾1

--单选题

-8.2 物理回顾2

--8.2 物理回顾2

--单选题

-8.3 材质 1

--8.3 材质 1

-8.4 材质 2

--8.4 材质 2

-8.5 材质3

--8.5 材质3

-8.6局部光照

--8.6局部光照

--单选题

-8.7 全局光照

--8.7 全局光照

--单选题

第九章 《游戏动画》

-9.1 动画介绍

--9.1 动画介绍

--多选题

-9.2 游戏动画介绍

--9.2 游戏动画介绍

-9.3 动画技术类型

--9.3 动画技术类型

--多选题

-9.4 骨骼蒙皮动画

--9.4 骨骼蒙皮动画

--多选题

-9.5 动画流水线

--9.5 动画流水线

--多选题

-9.6 动画前沿趋势

--9.6 动画前沿趋势

--多选题

第十章 《网络同步技术》

-10.1 .基本概念

--10.1 .基本概念

--多选题

-10.2 设计目标

--10.2 设计目标

--多选题

-10.3 传输数据分析

--10.3 传输数据分析

--多选题

-10.4 常用同步方案 1

--10.4 常用同步方案 1

-10.4 常用同步方案 2

--10.4 常用同步方案 2

-10.4 常用同步方案 3

--10.4 常用同步方案 3

-10.4 常用同步方案 4

--10.4 常用同步方案 4

--多选题

-10.5 方案对比

--10.5 方案对比

--多选题

第十一章 《游戏常用几何学》

-11.1 基本图元

--11.1 基本图元

--单选题

-11.2 图元距离(上)

--11.2 图元距离(上)

--单选题

-11.2 图元距离(下)

--11.2 图元距离(下)

--单选题

-11.3 图元相交测试+ 其他几何方法

--11.3 图元相交测试+ 其他几何方法

--单选题

第十二章 《游戏物理模拟》

-12.1 著名物理引擎介绍

--12.1 著名物理引擎介绍

--单选题

-12.2 物理引擎原理(上)

--12.2 物理引擎原理(上)

--单选题

-12.3 物理引擎原理(下)

--12.3 物理引擎原理(下)

--单选题

-12.4 游戏中的物理体

--12.4 游戏中的物理体

--单选题

-12.5 物理引擎使用入门

--12.5 物理引擎使用入门

--单选题

第十三章 《开发工具 》

-13.1开发语言

--13.1开发语言

--单选题

-13.2 开发环境

--13.2 开发环境

--单选题

-13.3 腾讯开发组件介绍

--13.3 腾讯开发组件介绍

--单选题

-13.4 网络通信+业务框架介绍

--13.4 网络通信+业务框架介绍

--多选题

第十四章 《分布式系统设计 》

-14.1 进程间通信(上)

--14.1 进程间通信(上)

-14.2 进程间通信(下)

--14.2 进程间通信(下)

-14.3 通信格式

--14.3 通信格式

-14.4 并发模型

--14.4 并发模型

-14.5 超时处理

--14.5 超时处理

-14.6 大系统小做(上)

--14.6 大系统小做(上)

--多选题

-14.7 大系统小做(下)

--14.7 大系统小做(下)

-14.8 架构层面的技术支持(上)

--14.8 架构层面的技术支持(上)

--单选题

-14.9 架构层面的技术支持(下)

--14.9 架构层面的技术支持(下)

-14.10 分布系统的关键能力

--14.10 分布系统的关键能力

--多选题

第十五章 《游戏人工智能》

-15.1 游戏人工智能综述

--15.1 游戏人工智能综述

-15.2 人工智能在游戏中主要方法 上

--15.2 人工智能在游戏中主要方法 上

--多选题

-15.3人工智能在游戏中主要方法 (下)

--15.3人工智能在游戏中主要方法 (下)

-15.4 人工智能在游戏制作中的应用领域1

--15.4 人工智能在游戏制作中的应用领域1

--多选题

-15.5 人工智能在游戏制作中的应用领域2

--15.5 人工智能在游戏制作中的应用领域2

-15.6 人工智能在游戏制作中的应用领域3

--15.6 人工智能在游戏制作中的应用领域3

--多选题

-15.7 人工智能在游戏运营中的应用实践(上)

--15.7 人工智能在游戏运营中的应用实践(上)

-15.8 人工智能在游戏运营中的应用实践(下)

--15.8 人工智能在游戏运营中的应用实践(下)

--多选题

第十六章 《游戏支撑系统 》

-16.1 游戏支撑系统(1)

--16.1 游戏支撑系统(1)

--单选题

-16.2 游戏支撑系统(2)

--16.2 游戏支撑系统(2)

--单选题

-16.3 游戏支撑系统(3)

--16.3 游戏支撑系统(3)

--单选题

-16.4 游戏支撑系统(4)

--16.4 游戏支撑系统(4)

--单选题

-16.5 游戏支撑系统(5)

--16.5 游戏支撑系统(5)

第十七章 《游戏逻辑服务器和反外挂》

-17.1 游戏逻辑服务器(上)

--17.1 游戏逻辑服务器(上)

--单选题

-17.1 游戏逻辑服务器(下)

--17.1 游戏逻辑服务器(下)

-17.2 外挂与反外挂(上)

--17.2 外挂与反外挂(上)

-17.2 外挂与反外挂(下)

--17.2 外挂与反外挂(下)

--多选题

第十八章 《运行环境和运维 》

-18.1运行环境

--18.1运行环境

--多选题

-18.2物理部署

--18.2物理部署

--多选题

-18.3系统的可运维性

--18.3系统的可运维性

--多选题

-18.4运维案列分析

--18.4运维案列分析

--多选题

14.5 超时处理笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。