当前位置: 首页 > news >正文

北京市社会建设工作网站足球联赛排名

北京市社会建设工作网站,足球联赛排名,公司网站建设免费,网站一般用什么软件做第1章 从角色走路说起 游戏网络通信的流程则是服务端先开启监听,等待客户端的连接,然后交互操作,最后断开。 套接字 每个Socket都包含网络连接中一端的信息。每个客户端需要一个Socket结构,服务端则需要N1个Socket结构&#xff…

第1章 从角色走路说起

游戏网络通信的流程则是服务端先开启监听,等待客户端的连接,然后交互操作,最后断开。
在这里插入图片描述

套接字

每个Socket都包含网络连接中一端的信息。每个客户端需要一个Socket结构,服务端则需要N+1个Socket结构,其中N为客户端的连接数,另外一个是服务端打开监听的套接字。

单线程事件模型(Reactor模型)

单线”指的是单线程,“事件”指的是事件触发,即当新连接、断开连接、收到数据这些事件到来时会触发某段代码。
在这里插入图片描述

一致性问题是分布式系统的一大难题

可能会出现很多异常情况:重复执行等,需要保持一致性;

操作系统

单个程序中可能会存在一些阻塞语句让CPU空闲,开启多个程序可以填补CPU的空闲时间。比如:
readFileSync

var server = net.createServer(function(socket){//新连接var data = fs.readFileSync('save.txt');//...//断开连接socket.on('close',function(){fs.writeFileSync('save.txt', data)});
});

如果程序中不包含阻塞语句,且运行在单核CPU下,同台物理机下部署多个程序是不能提升性能的。不过当代大多是多核CPU,可以同时执行多个程序,因此在非阻塞程序中,开启与CPU核心数相当的进程可以充分利用CPU。

阻塞为什么不占用CPU

常见的一些阻塞函数:等待客户端连接的accept函数,接收数据的recv函数等。那阻塞为什么不会占用CPU资源呢:
操作系统会分时执行各个运行状态的进程,由于速度很快,看上去就像是在同时执行多个任务。
阻塞了会到等待队列,等到条件成立(比如等待一段时间)操作系统会重新将进程A放入工作队列中,继续执行。
在这里插入图片描述

切换线程

CPU切换线程需要做很多工作,它执行一条语句大概需要几纳秒,完成一次线程切换大概需要几微秒,花销较大。开启的线程数越多,CPU就需要做更多的切换工作,这会使响应变慢。

网络模块的底层实现有两种方式:

1)每当有新的客户端连接时,开启新线程处理该客户端。
2)使用多路复用技术,所谓“多路”,指的是服务端可以阻塞(如使用epoll_wait)等待多个客户端的连接,有任何一个收到数据即返回。
Web服务器可以用这两种方法,但游戏服务端大多只会用第2种方法。这是因为Web服务器都是短连接发送消息后即断开,同时在线的客户端很少;游戏服务端大多是长连接,同时在线的玩家很多,方法1只能支持数百名玩家。

难以分割的业务

实现分布式程序的前提是游戏逻辑能够分割。如果游戏规则复杂,各个功能紧密相连,则不容易找到分割的方案。

actor

合理分割功能是分布式模型的一大难点,我们需要寻找一种模式,它既能符合游戏逻辑的表达,又能让计算机高效执行。传统的多进程方式很多场景不能满足游戏逻辑的表达;

每个Actor都会包含自身状态(HP、Coin),以及一个信箱(消息队列),Actor通过给其他Actor“寄信”来实现通信。至于收到信件后的反应,取决于收信的Actor。

在这里插入图片描述
在这里插入图片描述

由于各个Actor相互独立,计算机很容易让它们并行工作。

对游戏服务端而言,Actor并发模型给游戏业务的分割提供了灵活性。

第2章 Skynet入门精要

Skynet的强项在于单个节点内的并行运算

启动流程

在这里插入图片描述

skynet.socket模块

socket.read中所谓的阻塞模式和skynet.call一样,都利用了Lua的协程机制。调用socket.read,服务有可能被挂起,直到接收到数据,才会往下执行。

skynet协程

Skynet服务在收到消息时,会创建一个协程,在协程中会运行消息处理方法(即用skynet.dispatch设置的回调方法)。这意味着,如果在消息处理方法中调用阻塞API(如skynet.call skynet.sleep、socket.read),服务不会被卡住(仅仅是处理消息的协程被卡住),执行效率得以提高,但程序的执行时序将得不到保证。
在这里插入图片描述

http://www.zhongyajixie.com/news/29004.html

相关文章:

  • 政府网站建设推进会讲话优化网站seo公司
  • 免费ppt下载软件江苏seo网络
  • 网上去哪里找做网站的站长推荐产品
  • 秦淮html5响应式网站精准获客
  • 做网站为职业生存不下去莱阳seo外包
  • 商丘市住房和城乡建设局网站推广的几种方式
  • 做网站的基本知识宁波网站建设公司哪家好
  • 深圳做企业网站哪家好什么是竞价
  • 昆明网站seo全网推广软件
  • wordpress占用优化大师好用吗
  • 龙岩论坛拼多多关键词优化是怎么弄的
  • 阿里巴巴做网站吗网络平台推广运营有哪些平台
  • 网上商店的优势和缺陷免费的电脑优化软件
  • 怎样做艾条艾柱网站微信软文怎么写
  • 做酒店网站设计最新疫情19个城市封城
  • 网站开发论文中期检查表关键词热度
  • 2017网站seo如何做刷关键词排名seo软件软件
  • 建网站知乎福州网站优化
  • 微山网站建设公司网络推广方式有哪些
  • 免费网站制作平台下载b2b平台
  • 《学做网站论坛》视频下载谷歌seo是什么意思
  • 网站建设都需要什么文案新手怎么做电商
  • 做一斗地主网站多少钱域名状态查询工具
  • wordpress模板建站企业员工培训总结
  • 建设假网站手机网站关键词快速排名
  • 成都网站建设 好多科技手机优化器
  • 推广营销外包合肥seo软件
  • 品牌设计公司企业vi设计适合seo的建站系统
  • 什么网站百度的收录高培训机构加盟
  • 企业怎么在网站上做宣传郑州网站设计有哪些