mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-25 04:17:17 +00:00
docs: SSL/TLS
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
|
||||
和
|
||||
|
||||

|
||||

|
||||
|
||||
## RunLoop API
|
||||
|
||||
@@ -138,16 +138,20 @@ RunLoop 在各个 Mode 下做事情,其实就是在处理某个 Mode 中的 So
|
||||
|
||||
Source0:
|
||||
|
||||
- 屏幕触摸事件处理
|
||||
- 屏幕触摸事件处理(非基于 Port 的事件),对应需要手动触发的事件,对应官方文档Input Source 中的 Custom 和 `performSelector:onThread` 事件源。
|
||||
|
||||
- `performSelector:onThread:`
|
||||
|
||||
- 数组
|
||||
|
||||
Source1:
|
||||
|
||||
- 基于 Port 的线程间通信
|
||||
- 基于 Port 的线程间通信,可以主动唤醒 RunLoop
|
||||
|
||||
- 系统事件捕捉(比如屏幕触摸事件,Source1捕捉后,派发给 Source0 处理)
|
||||
|
||||
- 字典。`{machport : 1}`
|
||||
|
||||
Timers:
|
||||
|
||||
- NSTimer
|
||||
@@ -388,7 +392,7 @@ CFRelease(obersver);
|
||||
|
||||
但是如何直到系统是运行 RunLoop 的哪个函数?给 viewDidLoad 设置断点,在 lldb 模式输入 `bt` 查看堆栈
|
||||
|
||||

|
||||

|
||||
|
||||
查看 CF 中 `CFRunLoop.c`源码。方法比较复杂,做了精简摘要
|
||||
|
||||
@@ -1497,7 +1501,7 @@ UITableView 在滚动的时候一个优化点之一就是 UIImageView 的显示
|
||||
|
||||
2. `[[NSRunLoop currentRunLoop] run]` api 换掉。查看系统说明,底层其实就是一个无限循环,循环内部不断调用 `runMode:beforeDate:`。下面也有建议,建议我们想销毁 RunLoop,可以替换 API,比如设置一个变量,标记是否需要结束 RunLoop
|
||||
|
||||

|
||||

|
||||
|
||||
改进代码如下
|
||||
|
||||
@@ -1578,6 +1582,17 @@ UITableView 在滚动的时候一个优化点之一就是 UIImageView 的显示
|
||||
}
|
||||
```
|
||||
|
||||
线程保活后如何暂停?
|
||||
|
||||
```
|
||||
[thread cancel];
|
||||
thread = nil;
|
||||
// 指针 nil,还是被 RunLoop 持有。
|
||||
// 也不行。CFRunLoopStop([NSRunLoop currentRunLoop].getCFRunLoop);
|
||||
```
|
||||
|
||||
主线程为什么
|
||||
|
||||
### 线程封装
|
||||
|
||||
思考:如何设计一个常驻线程工具类?
|
||||
|
||||
Reference in New Issue
Block a user