docs: APM、多句柄数据上报SDK、软件测试小结

This commit is contained in:
杭城小刘
2020-11-19 03:18:27 +08:00
parent 37f218379d
commit 145dcb4d48
17 changed files with 10302 additions and 44 deletions

View File

@@ -1004,7 +1004,7 @@ CF_EXPORT CFRunLoopRef _CFRunLoopGet0(_CFThreadRef t) {
}
```
![Mach Port Test Demo](./../assets/2020-08-13-MachPortTest.png)
![Mach Port Test Demo](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/2020-08-13-MachPortTest.png)
可以看到 main.m 中,还没有 return 的时候当前 RunLoop 的内部结构中存在一个 **wakeup port** 的端口。查看 RunLoop 源代码 **wakeup port** 就是 mach port 的一种。
@@ -1096,7 +1096,7 @@ CF_EXPORT CFRunLoopRef _CFRunLoopGet0(_CFThreadRef t) {
7. RunLoop lifecycle
![RunLoop lifecycle](./../assets/2020-08-13-RunLoopLifeCycle.png)
![RunLoop lifecycle](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/2020-08-13-RunLoopLifeCycle.png)
休眠时 RunLoop 被 mach_msg 阻塞,等到消息到来,可以是手动给 RunLoop 的 wakeUpPort 发消息 mach_msg或者是 timer、Source1。然后继续走到 RunLoop run不断循环