c/c++ |游戏后端开发之skynet

本文介绍了Skynet引擎如何利用Lua解决游戏服务器的多核优化问题,通过嵌入式语言实现进程隔离和高效数据交换,同时提及了并发问题在C/C++之外的应用,以及Skynet的核心功能,如服务管理、消息机制和名字服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者眼中的skynet
有一点要说明的是,云风至始也没有公开说skynet专门为游戏开发,换句话,skynet 引擎也可以用于web 开发

贴贴我的笔记

skynet 核心解决什么问题

愿景:游戏服务器能够充分利用多核优势,将不同的业务放在独立的执行环境中处理,协同工作。

解决心路:最开始想的是利用OS的进程解决,后来发现必须要采用嵌入式语言(lua),独立OS进程意义不太大

Lua State 提供了良好的沙盒,隔离不同执行环境。
多线程模式,可以使得状态共享、数据交换更佳高效。

当然多线程的弊端也很明显,如复杂的线程锁、线程调度问题。当然这些问题可以通过见效底层的规模,精简设计,最终把危害限制再很小的范围。这一点,skynet最终花了不到3000行c代码来水岸核心层的代码。

记得在候捷的书中,这样讲过,并发问题后于c/c++的

核心:skynet仅仅解决一个问题。把一个符合规范的C模块,从动态库中启动起来,绑定一个永不重复(即使模块退出)的数字id作为其handle。模块被称为服务(Service),服务期间可以自由发送消息。每个模块可以向Skynet框架注册一个c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值