- 博客(35)
- 资源 (5)
- 收藏
- 关注

原创 skynet学习笔记 源码之lua消息回调注册过程
所有lua服务通过c模块snlua拉起的,skynet启动都拉起config中的bootstrap = "snlua bootstrap" --the service for bootstrap也就是通过snlua拉起bootstrap文件名的lua服务。static voidbootstrap(struct skynet_context * logger, const char * cmdline) { int sz = strlen(cmdline); cha...
2021-06-23 16:51:24
745

原创 skynet学习笔记 源码之skynet_timer定时器
定时器简介skynet.timeout(ti,func)skynet定时器非常的轻量级,仅仅提供注册函数,并且还不能传参。定时器的实现仅仅用了300行代码。定时器注册回调流程通过调用capi把定时任务加入,最终已消息的方式传回本actor,用worker线程处理消息,执行注册函数。functionskynet.timeout(ti,func)localsession=c.intcommand("TIMEOUT",ti) ....endstat...
2021-04-30 13:03:06
1742
2

原创 linux文件权限的修改与数字表示法
查看文件权限(ls -l)-rw-r--r--. 1 root root 691 3月 10 11:33 a.txt字符1(-):类型字符2-4(rw-):当前用户权限字符5-7(r--):组用户权限字符8-10(r--):其他用户权限文件类型-:普通文件d:目录文件b:块特效文件c:字符特殊文件l:符合文件f:命名管道s:套接字文...
2020-03-11 23:32:47
3193

原创 字牌跑胡子王赖听牌算法c++|lua实现详解
static const vector<int> publicPailib{ 101,102,103,104,105,106,107,108,109,110, 101,102,103,104,105,106,107,108,109,110, 101,102,103,104,105,106,107,108,109,110, 101,102,103,104,105,106,10...
2020-02-10 13:34:01
2780
2
原创 Error response from daemon: conflict: unable to delete feb5d9fea6a5 (must be forced) - image is bein
Error response from daemon: conflict: unable to delete feb5d9fea6a5 (must be forced) - image is bein
2022-09-19 00:26:01
972
转载 cenos7升级gcc版本
原文链接:CentOS 7升级gcc版本 - 姬无华 - 博客园Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至8.3.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译1、安装centos-release-sclsudo yum install centos-release-scl2、安装devtoolset,注意,如果想安装7.*版本的,就改成devtoolset-7-gcc*,以此类推sudo yum install devtoolset-
2022-02-19 00:10:15
314
原创 网络七层协议
物理层如何连接到网络?用网线,光纤。数据链路层链接了如何传输信息?发送0或者1的电信号。如何知道发给谁?网卡 MAC全球唯一地址。以太网传输协议,规定一组电信号为一帧,协议头和数据,标头记录了发送者mac地址和接收者mac地址,通过原始的广播方式发送给其他内网的计算机,其它计算机判断接收方mac地址和自己是否一致,如果一致就可以接收消息。网络层如何将消息发送到外网计算机上?原始的广播方式消耗大,这时就引入ip协议,这个时候计算机会判断是给内网的计算机数据还是外网的,如果是内网
2022-02-15 01:04:35
1039
原创 skynet使用时遇到的坑 -2 skynet别名别滥用
skynet别名源码分析:skynet学习笔记 源码之sknyet_handle句柄_从零到一万物起源的博客-优快云博客别名简介skynet
2021-10-30 09:30:25
355
原创 skynet使用时遇到的坑 -1:消息堆积引爆内存风险
场景客户端 服务器 数据库客户端请求skynet服务器,skynet服务器查询数据库发送结果给客户端。假设客户端1秒可以有10条请求被服务器接收处理,数据库处理速度为1秒1条。假设客户端一直以最快速度请求。这样skynet就会堆积消息。lua服务就会堆积携程。因为消息和lua携程都是要占用内存的,得不到释放就会有引爆内存的风险。...
2021-10-20 16:06:55
812
原创 skynet学习笔记 源码之skynet_server服务api
前言skynet_server是skynetc层的核心。代码主要实现skynet.c和skynet_server.h的api函数。
2021-06-16 21:24:03
451
原创 skynet学习笔记 源码之sknyet_env环境变量
前言env在skynet的作用是服务间共享的环境变量。api接口const char * skynet_getenv(const char *key);void skynet_setenv(const char *key, const char *value);
2021-06-04 16:05:20
372
原创 skynet学习笔记 源码之sknyet_handle句柄
前言handle句柄,每一个context出生都会注册的id,skynet_handle集中管理它们的引用计数,内存释放,还有本地别名。
2021-06-01 21:38:32
262
原创 指针变量,数组指针,指针数组,2级数组,函数指针,void 指针
前言指针是c语言的重点,也是c语言的难点,一般最简单的指针变量我们不会弄错,可以遇到指针数组,数组指针,2维指针,3维指针,void指针,有时候就蒙了,今天我花一天时间,
2021-05-31 18:46:46
210
原创 skynet学习笔记 源码之sknyet_monitor监视器
前言sknyet_monitor的作用是监视work线程对消息的处理有没有疑似出现死循环。当出现这种情况时,会把目标context endless字段置为true,lua层通过skynet.lenless()判断当前处理是否出现死循环。monitor结构structskynet_monitor{ATOM_INTversion; //原子累加的版本号intcheck_version; //检查版本号uint32_tsource; /...
2021-05-17 20:30:49
377
原创 lua闭包
何为闭包外部函数:包含闭包函数的函数通常结构是function A() function() B endendA包含B闭包就是一个可以访问外部函数局部变量的函数。闭包形成条件1:函数为第一类值函数和变量一样,可以赋值,传参,当作返回值。2:词法定界lua语言可以访问外部函数的局部变量简单闭包案例计数器function new_counter() local count = 0; ret...
2021-05-06 17:11:57
108
原创 makefile 学习笔记
核心规则edit:main.ocommand.oabc.ogcc-oeditcommand.omain.oabc.omain.o:main.cdefs.hcommand.hgcc-cmain.cabc.o:abc.cgcc-cabc.ccommand.o:command.ccommand.hgcc-ccommand.cclean:rmeditm...
2021-05-06 16:07:45
201
原创 skynet学习笔记 源码之sknyet_module模块
前言skynet_module在skynet中非常重要,skynet_context必须有一个module实例。sknyet_module的作用主要是加载保存动态库,绑定动态库API接口,module代理调用动态库的api接口。作用:避免的动态库重复加载,接口调用简单化。skynet_module.hmodule结构体非常的简单,就是记录这个库文件名字,句柄,和一个api接口函数。structskynet_context;typedefvoid*(*skynet_...
2021-05-05 18:56:50
187
原创 ./luaclib/protobuf.so: only ET_DYN and ET_EXEC can be loaded pbc lua protobuf引用 protobuf.so报错
CC = gccCFLAGS = -O2 -fPIC -WallLUADIR = ../../../lua/TARGET = protobuf.soSHARED = -shared.PHONY : all cleanall : $(TARGET)$(TARGET) : pbc-lua53.c $(CC) $(CFLAGS) $(SHARED)-o $@ -I../.....
2020-05-04 13:58:28
299
原创 用户与权限管理
新建用户(useradd)新建用户: useraddr 用户名新建用户并且指定组: useraddr -g 组名用户名查看id : id 用户名设置密码(passwd)修改设置用户密码:passwd 用户名删除用户(userdel)删除用户:userdel 用户名删除用户并且删除该用户所以文件:userdel -r 用户名修改用户属性(us...
2020-03-11 17:42:59
733
原创 linux Vim的4种模式linux下的记事本操作
正常模式打开文件:vim 文件名(编辑)插入模式:i,I,o,O,a,A 都能进入,区别都是光标位置不同i:当前光标、I:光标所在行首位、o:光标下增加一空行光标下去、 O:光标不下去、a:光标下一位、A:光标末行移动光标:H(左)J(下)K(上)L(右)显示行号:set number(nu)显示行号:set nonumber(nonu)跳到首行:gg跳到尾行...
2020-03-10 23:31:53
452
原创 863. 二叉树中所有距离为 K 的结点
给定一个二叉树(具有根结点root),一个目标结点target,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离为...
2019-12-18 17:34:52
278
原创 二叉平衡树c++类形式编写详解
目录AVL的定义为什么要调整树高树的旋转调整检查调整树结点的插入树结点的删除完整代码AVLTree.hAVTTree.cpptest.cpp测试结果AVL的定义平衡二叉查找树:简称平衡二叉树。由前苏联的数学家Adelse-Velskil和Landis在1962年提出的高度平衡的二叉树,根据科学家的英文名也称为AVL树。它具有如下几个性...
2019-10-11 11:39:53
366
原创 二叉排序树(查找树)
二叉查找树:二叉查找树,也称二叉搜索树,或二叉排序树。其定义也比较简单,要么是一颗空树,要么就是具有如下性质的树:1 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3 任意节点的左、右子树也分别为二叉查找树;4 没有键值相等的节点。查找树核心查找:searchBET相等于二分查...
2019-10-08 20:03:13
196
原创 c/c++递归非递归完成快速排序思路解析
快排的基本步骤就是:1:找基准数2:把比基准数大的放一边,小的放另一边 (我的理解为:基准数找自己正确的位置)3:以基准数为中心,左右两边重复1,2步比喻理解: 地点:学校操场 事件:班级第一次早操 人物:班主任 n个同学 和 不高不矮的我广播响起,同学们都飞快的跑到操场上排成一字长蛇。班...
2019-09-21 01:16:26
293
原创 leecode82 83. 删除排序链表中的重复元素
83:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3解题思路:使用前继结点,和当前结点,当俩者相等时循环判断当前结点直到不相等。ListNode* deleteDuplicate...
2019-09-16 19:34:26
173
原创 leecode分割链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5解题思路:该题相当于一个分类问题,基于给定参数x分大和小。...
2019-09-16 15:09:19
180
转载 linux命令:防火墙
1、firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld开机启用 : systemctl enable firewalld2.systemctl是Cen...
2019-08-31 17:39:41
217
原创 mount命令 常用于挂载window文件
mount: 用于挂载Linux系统外的文件-V:显示程序版本 -h:显示辅助讯息 -v:显示较讯息,通常和 -f 用来除错。 -a:将 /etc/fstab 中定义的所有档案系统挂上。 -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。 -f:通常用在除错的用途。它会使 mount...
2019-08-21 14:56:44
1187
原创 linux window centos 设置共享文件夹笔记
挂载时报错mount error(13): Permission deniedRefer to the mount.cifs(8) manual page (e.g. man mount.cifs)参考https://www.cnblogs.com/fzzfh/p/10330014.html解决参考https://blog.youkuaiyun.com/ranksvm/article/...
2019-08-16 11:31:11
178
原创 leecode第k个排列题目解析递归算法/c++
给出集合[1,2,3,…,n],其所有元素共有n! 种排列。按大小顺序列出所有排列情况,并一一标记,当n= 3 时, 所有排列如下:"123" "132" "213" "231" "312" "321"给定n和k,返回第k个排列。说明:给定n的范围是 [1, 9]。 给定k的范围是[1, n!]。示例1:输入: n = 3, k ...
2019-03-22 22:19:20
318
ip2020最新数据库表格.rar
2020-07-30
loadConfig.zip
2019-07-17
c语言编写中国象棋人人对战graphic.h
2017-10-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人