
skynet
文章平均质量分 92
zhongh58
这个作者很懒,什么都没留下…
展开
-
skyntet如何启动一个lua服务
初始化lua_State,先是将skynet_context保存起来,以方便lua层调用c的时候使用,然后就是一些配置设置,如设置一些lua服务脚本的存放路径,c服务so库的存放路劲(加载和调用的时候,回到这些路劲里寻找),然后该lua_State会加载一个用于执行指定脚本的loader.lua脚本,并将参数传递给这个脚本(参数就是snlua服务绑定的lua脚本名称和传给这个脚本拼起来的字符串,比如要启动一个名位scene的服务,那么对应的脚本名称就是scene.lua)原创 2023-09-25 16:16:15 · 292 阅读 · 0 评论 -
skynet消息调度机制
是实现的一种同步机制,也称“共享-互斥锁”,用于解决。读操作可并发重入,写操作是互斥的。这意味着多个线程可以同时读数据,但写数据时需要获得一个独占的锁。弱优先级强优先级读写锁通常用实现。原创 2023-09-20 10:34:23 · 288 阅读 · 1 评论 -
skynet 启动c服务的过程
config->logservice指log服务的so库名称,用于后面加载服务时使用,config->logger指log的输出路径。本文旨在记录我对skynet重新学习和理解的过程,也便于以后回顾(本文纯手打,输出的过程也是记忆的过程)。启动skynet节点时,会启动logger服务。原创 2023-09-14 15:54:15 · 297 阅读 · 1 评论 -
skynet-设计综述
作为核心功能,skynet仅解决一个问题:把一个符合规范的c模块,从动态库(so文件)中启动起来,绑定一个永不重复的数字id作为其handle。模块被称为服务,服务间可以自由的发送消息,每个模块可以向skynet框架注册一个callback函数,用来接收发给它的消息。每个服务都是被一个个消息包驱动的,当没有包到来的时候,它们就会处于挂起状态。对CPU的资源零消耗。如果需要自主逻辑,则利用skynet系统提供的timeout消息,定期触发。原创 2023-09-14 14:20:33 · 333 阅读 · 1 评论