当前位置:首页 >> 半导体技术突破 >> 【skynet】skynet 入门代码,暴风s200

【skynet】skynet 入门代码,暴风s200

cpugpu芯片开发光刻机 半导体技术突破 3
文件名:【skynet】skynet 入门代码,暴风s200 【skynet】skynet 入门代码 写在前面

本文将从零开始,写第一个 skynet 程序 HelloWorld 。通过 HelloWorld 可以熟悉 skynet 的运作方式,和了解其 api 。

文章目录 写在前面准备工作编写代码运行结果


准备工作

首先要有一个编译好,而且工作正常的 skynet 。

编写代码

在 skynet/example 目录编写一个配置文件,一个代码文件。

代码文件

-- main_ping.lua-- require skynetlocal skynet = require "skynet"-- 初始化函数function init()skynet.error("This is main_ping service.")end-- 服务函数function task()while true do-- 打印时间戳skynet.error("time: " .. math.floor(skynet.time()))-- 睡眠一秒skynet.sleep(100) endend-- 注册初始化函数skynet.init(init)-- 启动服务skynet.start(task)

为了让 bootstrap 加载 main_ping 还需要一个配置文件。

-- config_ping-- 启动多少个工作线程thread = 8-- skynet 工作在单节点模式下harbor = 0-- skynet 节点的主程序start = "main_ping"-- lua 服务代码所在的位置luaservice = "./service/?.lua;./examples/?.lua" 运行结果 root@macbook:~/skynet# ./skynet examples/config_ping[:00000001] LAUNCH logger [:00000002] LAUNCH snlua bootstrap[:00000003] LAUNCH snlua launcher[:00000004] LAUNCH snlua cdummy[:00000005] LAUNCH harbor 0 4[:00000006] LAUNCH snlua datacenterd[:00000007] LAUNCH snlua service_mgr[:00000008] LAUNCH snlua main_ping[:00000008] This is main_ping service.[:00000008] time: 1692068312[:00000008] time: 1692068313...

可以看到,一共是开了8个服务。

loggersnlua bootstrapsnlua launchersnlua cdummyharborsnlua datacenterdsnlua service_mgrsnlua main_ping

其中第8个服务 snlua main_ping 才是我们自己编写的,其他都是系统服务。

严格来说,是 bootstrap 通知 launcher 启动一个 snlua ,由 snlua 执行我们的服务。

服务启动时,先调用了init()初始化函数,然后执行task()进入工作,周期打印时间戳。

skynet|+ logger|+ snlua bootstrap|+ snlua launcher|+ snlua cdummy| || + harbor|+ snlua datacenterd|+ snlua service_mgr|+ snlua main_ping
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接