并发多进程服务器和多线程服务器总结

多进程服务器和多线程服务器区别

多进程的服务器就好比是 立体的交通系统(立交桥)虽然说建造的时候花费比较大,消耗的资源比较多,但是真要是跑起来不会交通堵塞。但是汽车在上面跑,相互通信就是个很费事儿问题(进程间通信比较麻烦);
多线程就好比是平面的交通系统,造价低,但是很容易交通堵塞, 但是也有好处同步的时候方便。

在网络服务器方面

单进程 < 多进程(单线程)< 多进程(多线程)

在游戏方面的应用

多线程服务器

  1. 按场景分线程,一个线程管理若干个场景。这样配置灵活,一个线程可以管理若干个小场景,除非有个场景人多到一个CPU跑不下来,一般的游戏都会满足需求。缺点则是不在同一线程的Object在做逻辑交互时,必须用异步,如果用到了脚本,那么这里的复杂度和性能要值得注意。如果项目中出现单个服务器解决不鸟的问题(例如战场服务器),似乎就成了多线程多进程的庞大架构。
  2. 按功能分线程,例如Object的管理和查找,NPCAI的寻路,这种方式貌似在做逻辑需要分离到别的线程模块功能时有点麻烦,如果直接上锁等待肯定不是最好的方式,所以这些逻辑必须变成异步。

多进程服务器
其实这里可以理解为把多线程要处理的数据放到了进程上来处理,client和进程之间通过网关来处理数据,这个模式优点是便于扩展。数据处理不过来就加机器进行分布
画个简单流程图让大家简单理解下
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章