skynet学习笔记02— skynet介绍、skynet基础API与环境变量

01、Skynet与Actor模型

在系统Skynet之前,先了解一下Skynet与Actor模型,下列是风云大佬的介绍以及一个大佬的博客

  • https://github.com/cloudwu/skynet/wiki/GettingStarted
  • https://blog.csdn.net/qq769651718/article/details/79432793

02、Skynet基础API

  • start(func): 用 func函数初始化服务,并将消息处理函数注册到 C 层,让该服务可以工作。
  • init(func):若服务尚未初始化完成,则注册一个函数等服务初始化阶段再执行;若服务已经初始化完成,则立刻运行该函数。
  • setenv(key,value): 向当前进程内注册表添加一项(不可以重置已有配置项)。
  • skynet.getenv(key) :conf配置信息已经写入到注册表中,通过该函数获取注册表的变量值
  • skynet.exit(): 结束当前服务
  • skynet.error(str):打印函数

全部API列表:https://github.com/cloudwu/skynet/wiki/APIList

03、Demo

配置

project = "../project/"thread = 8
cpath = "./cservice/?.so"
bootstrap = "snlua bootstrap"
start = "01baskAPI"
-- 可以是 1-255 间的任意整数。一个 skynet 网络最多支持 255 个节点。每个节点有必须有一个唯一的编号。
-- 如果 harbor 为 0 ,skynet 工作在单节点模式下。此时 master 和 address 以及 standalone 都不必设置。
harbor = 0 
lualoader = "./lualib/loader.lua"
luaservice = "./service/?.lua;"..project.."?.lua;"
lua_path =  "./lualib/?.lua;" .. "./lualib/?/init.lua;"
lua_cpath = "./luaclib/?.so"-- 自定义的变量
myname = "mhzzj"
myage = 9999

代码

local skynet = require "skynet"skynet.init(function ()local name = skynet.getenv("myname")    local age = skynet.getenv("myage")   skynet.error("01baskAPI [init] name",name,"age",age,"newKey",skynet.getenv("newKey")) skynet.setenv("newKey","newValue");skynet.error("01baskAPI [init] name",name,"age",age,"newKey",skynet.getenv("newKey")) -- skynet.setenv("newKey","newValue2"); 对已经存在的key赋值会导致报错-- skynet.setenv("myname","myname");
end)skynet.start(function()local name = skynet.getenv("myname")    local age = skynet.getenv("myage")  skynet.error("01baskAPI [start main] name ",name,"age",age,"newKey",skynet.getenv("newKey"))skynet.exit()
end)

运行结果

在这里插入图片描述

04、相关代码

https://gitee.com/mhz-zzj/skynet-study
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/138378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka开启SSL认证(包括内置zookeeper开启SSL)

zookeeper和kafka的SSL开启都可单独进行 生成SSL证书 使用jre自带的keytool工具生成,linux和windows下生成的证书可以通用 生成含有一个私钥的keystore文件,有效期10年(本文证书密码统一使用test123) keytool -genkeypair -ali…

acwing算法基础之搜索与图论--朴素版dijkstra算法

目录 1 基础知识2 模板3 工程化 1 基础知识 朴素版dijkstra算法的关键步骤: 初始化d[1]0,d[2~n]正无穷,例如0x3f3f3f3f。用集合S来表示当前已被确定最小距离的结点们。遍历每一个结点:找到不在S中的且距离结点1最近的结点&#…

python升级pip的时候一直失败

如图,一直提示使用 python.exe -m pip install --upgrade pip 进行升级pip,但是执行这句命令又不成功.然后综合了几篇文章以后使用了下面的命令可以升级了 python -m pip install --upgrade pip --user -i https://mirrors.aliyun.com/pypi/simple/ 主要是在推荐的语句上使用…

润色论文Prompt

你好,我现在开始写论文了,我希望你可以扮演帮我润色论文的角色我写的论文是关于xxxxx领域的xxxxx,我希望你能帮我检查段落中语句的逻辑、语法和拼写等问题我希望你能帮我检查以下段落中语句的逻辑、语法和拼写等问题同时提供润色版本以符合学…

K8S篇之Pod中的资源限额

1、Pod定义requests、limits相关参数 在k8s中,全面限制一个应用及其中的pod所能占用的资源配额,具体可以使用下面三种方式: 1、定义每个pod的资源配额相关参数,如CPU/memory的request、limits; 2、自动为每个没有定义资…

AI搞钱——工具篇之视频、音频转文字

AI搞钱 工具篇之视频、音频转文字Memo AI :本地的语音转文字工具WhisperpyvideotransnottaAccurate AI万兴优转 视频转换 压缩工具v14.1.19.20 工具篇之视频、音频转文字 哈喽各位小伙伴们!今天我要给大家推荐几款视频、音频转文字的好用工具。 Memo A…

Android Studio新建项目下载依赖慢,只需一个操作解决

新建的安卓工程,下载依赖贼慢怎么办?水一篇吧。 首先新建工程,建好以后项目就自动开始下载了,底部开始出现进度条,但是进度条一直不怎么动,网速也就十几k,要是等他下载得下一天。 直入主题&…

第四节(2):修改WORD中表格数据的方案

《VBA信息获取与处理》教程(10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网…

AttributeError: module ‘tensorflow‘ has no attribute ‘contrib‘解决办法

在TensorFlow2环境下执行1.X版本的代码时报错: AttributeError: module ‘tensorflow‘ has no attribute ‘contrib‘ 当然第一时间想到的是利用 如下代码 来解决问题(大部分情况都是这样), tf.compat.v1但是又出现以下报错 Att…

Django之三板斧的使用,全局配置文件介绍,request对象方法,pycharm链接数据库,Django链接数据库,ORM的增删改查

【1】三板斧(3个方法)的使用 Httpresponse() 括号内写什么字符串,返回的就是什么字符串返回的是字符串 render(request, 静态文件 ) request是固定的静态文件是写在templates文件夹里面的,如,HTML文件 redirect( 重定向的地址 ) 重…

windows uvc

Windows平台使用DirectShow获取UVC摄像头上按键后的抓拍图 - 知乎 (zhihu.com) DirectShow中获得摄像头的DevicePath, 得到如下不同效果-CSDN博客 linux 和 windows 下用ffmpeg 操作usb摄像头_linuxffmpeg 播放本地文件摄像头 命令行-CSDN博客 ./ffplay -f dshow -i video&qu…

Markdown使用教程

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

基于VSCode + PlatformIO创建运行第一个esp32程序

文章目录 使用VSCode创建项目安装驱动下载驱动安装驱动连接开发板电脑识别开发板 编写程序烧录程序第一步、编译程序第二步、烧录程序第三步、开发板观察效果 原理讲解项目源码 在之前的课程,我们已经介绍了ESP32单片机,并且也已经安装好了开发环境&…

20道简单的投资数学逻辑

20道简单的投资数学逻辑 (非常好,强烈推荐,其中第3、第11的案例太经典了,是我反复给金融研究生讲授分析的案例) 1、关于收益率 假如你有100万,收益100%后资产达到200万,如果接下来亏损50%&am…

干洗店洗鞋店管理系统app小程序;

干洗店洗鞋店管理系统是一款专业的洗衣店管理软件,集成了前台收费收银系统、会员卡管理系统和财务报表系统等强大功能。界面简洁优美,操作直观简单。这款系统为干洗店和洗衣店提供了成本分析、利润分析、洗衣流程管理等诸多实用功能,用全新的…

【华为OD机试AB高分必刷题目】简单的最短路径(Java-Dijkstra算法实现)

🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,高分通过! 文章目录 【华为OD机试AB必刷题目】简单的最短路径(Java实现)题目描述解题思路Java题解代码代码OJ评判结果代码讲解寄语【华为OD机试AB必刷题目】简单…

深度学习 opencv python 公式识别(图像识别 机器视觉) 计算机竞赛

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的数学公式识别算法实现 该项目较为新颖,适合作为竞赛课题方向,学…

嵌入式养成计划-49----ARM--计算机相关理论--ARM相关内容

一百二十三、计算机相关理论 123.1 计算机的组成 目前的计算机都还是 冯诺依曼体系 ,也就是由:输入、输出、运算器、存储器、控制器,这个五个部分构成。输入:Input,常见的输入设备,比如鼠标,键…

LeetCode | 234. 回文链表

LeetCode | 234. 回文链表 O链接 这里的解法是先找到中间结点然后再将中间节点后面的节点逆序一下然后再从头开始和从中间开始挨个比较如果中间开始的指针到走最后都相等,就返回true,否则返回false 代码如下: struct ListNode* reverseLis…

18. 深度学习 - 从零理解神经网络

文章目录 本文目标预测趋势与关系波士顿房价预测 Hi, 你好。我是茶桁。 我们终于又开启新的篇章了,从今天这节课开始,我们会花几节课来理解一下深度学习的相关知识,了解神经网络,多层神经网络相关知识。并且,我们会尝…