2022年4月9日记:Linux服务器开发,Mark,skynet重要组件以及手撕游戏项目

17 篇文章 1 订阅

────────────────────────────────────

┌————————————┐
│▉▉♥♥♥♥♥♥♥♥ 99% │ ♥❤ 鱼沈雁杳天涯路,始信人间别离苦。
└————————————┘
对你的感情正在充电中,请稍侯…

────────────────────────────────────
推荐一个 零声学院 免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习]
https://ke.qq.com/course/417774?flowToken=1042807

────────────────────────────────────

前言

写博客是一个很好的学习习惯,不管今天真的有没有学到知识,坐在电脑前絮絮叨叨记录写下今天所学的知识,哪怕一丁点生活感悟,心情也会变得非常开心。
好的,开始今天的学习。
本节课的主要目标就是掌握框架的开发思路。

消息与事件关系?

在这里插入图片描述

typedef union epoll_data
{
	void * ptr;  		//skynet使用的方式
	int fd;  			//redis使用的方式
	uint32_t u32;
	uint64_t u46;
}epoll_data_t;

指向一个socket关联对象,id是标记着socket的标识。

sp_add,sp_del,sp_enable是对epoll_ctl事件控制的封装。

学到这里我似乎长大了,认识到了计算机世界的奇妙,曾经的年少无知都仿佛发生在刚刚。

消息与actor如何绑定?具体的绑定接口流程是什么?

感觉就像是一堆缜密的结构体用指针指来指去,却从未指出回家的方向。

线程与线程通信,不加锁有没有更好的方式?
管道你值得拥有!少量数据,不要一次发太多的数据。

当事件触发,做相对应的IO操作,把处理的事件包装成消息推送到相对应的actor消息队列。

消息与协程的关系

确定读事件时候,先把数据读出来。问题是如何把事件转为消息?
读事件被触发,从网络事件中读取数据包装成消息,然后推到消息队列当中去。

同学展示才艺阶段

在reactor网络编程中,对于客户端来说什么表示网络建立成功?

  • connect非阻塞
  • fd可写
    但是对于服务器来说,又是怎么样的?
  • listenfd交由epoll进行管理
  • fd可读

这个问题当时只有 @麻利小超人 回答正确了,得到了Mark老师的青睐,估计他内心一定回很骄傲。但是从内容本质上来看这并不是一道很难的问题,我也同样能回答出来,只是当时已经在摸鱼ING了。

  • yield 主动让出协程
  • resume 唤醒协程
    我们的lua协程是通过手动的方式,和King老师讲的不一样,没有借助任何中间件,走的的是自强的道路。

条件满足进行唤醒,条件不满足就要让出。

栈空间

在这里插入图片描述

虚表指针

在这里插入图片描述

总结

通过今天的学习mark老师的skynet组件,并且真正的参与到了游戏环节,感觉真正的学习到了skynet。直播时,没有回答出老师提的问题有些遗憾,心有不甘,但是现在感觉也能铺着胸脯说掌握了三分了。
学了2遍也只能掌握到现在这个程度了,好了,废话就不多说了。
不管经历什么。努力成为最好的自己。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屯门山鸡叫我小鸡

加油

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值