0%
src/ae.c
下的void aeMain(aeEventLoop *eventLoop)
函数; 推荐从这个函数开始阅读
- 我们着重看下
aeMain
里面aeProcessEvents(eventLoop, AE_ALL_EVENTS)
做了什么; 这里我们留意一下里面的aeApiPoll
函数, 该函数用于获取可执行的事件
, 获取之后在下面的for循环中处理事件, 执行事件处理器fe->rfileProc(eventLoop,fd,fe->clientData,mask)
aeApiPoll
函数是ae模块提供的一个接口, 在ae_epoll.c
ae_kqueue.c
ae_select.c
ae_evport.c
都做了相应的具体实现, 也是所谓IO多路复用
各平台的具体实现, 目的为了兼容不同平台
- 备注: 也许你会好奇为啥
IO多路复用
没有iocp
的实现难道windows就没人权吗, 其实redis的官方版本是不支持windows的, windows版本在https://github.com/microsoftarchive/redis
由微软团队自己维护, 里面就有ae_wsiocp.c
即iocp
版的实现
- 通常说的redis的
reactor模型(反应堆)
其实说的就是aeMain
的大循环中aeProcessEvents
做的那些事情: 监听网络连接的FD的文件事件---> 获取事件---> 执行事件回调
- 剩下具体细节不多赘述, 顺着思路看源码即可
- 得知Clion 2019.1之后的版本官方直接支持Stm32项目的创建, 遂怀揣激动之心准备一试…
- 照着别人的教程, 一顿操作猛如虎, 一会捣鼓
OpenOCD
, 一会捣鼓arm-none-eabi-gcc
… …说实话, 过程挺麻烦的, 会遇到一些坑
- 手头上只有一块老stm32的核心板还有一个Jlink, 烧写调试也只能靠Jlink. 结果捣鼓了老半天, Jlink这块没办法打通, 即没办法用Jlink愉快地Debug, 遂放弃
- 写markdown有这样的需求: 点击某个词跳转到markdown文章的某个位置(某个锚点), 但是写完发现有些点了跳不过去
- 原因就是跳转锚点的格式没写对, 格式见下面
- 必须全小写
- 空格用’-‘代替
- ‘_’ ‘()’需要去掉
- 临摹大佬的作品的时候丰富的颜色会反而产生莫名的干扰, 所以希望能转成干净的线稿!
- PS的滤镜效果不理想, 也找不到其他合适的工具, 故自己撸一个试试
- 罗马音转假名(平假片假), 简单好用…
- 属于个人需求, 偶尔要敲一段假名, (日文输入法太笨重污染桌面干净的右下角) 算是用的比较频繁的一个自制玩具