子线程发出的通知,主线程如何接收处理

1.关键点是在主线程的runloop中加入一个machport
2.在子线程中,1)将要发出的通知加入一个数组中,然后通过主线程中的machport发出消息
2)在主线程中接收port来的消息,但其内部其实是访问主线程生成的数组(该数组在子线程中也能进行操作,怪不得要加锁)即可。
3.注意在主线程中处理通知的要区分出来当前线程(通知的监听者还能处理不同线程的)
4.NSMachPort是线程间通信的一种方式
注:
- (void)handlePortMessage:(NSPortMessage *)message;


准备工作


接收通知的函数


主线程接收port来的消息

参考链接:https://www.bbsmax.com/A/x9J2DXQed6/
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Notifications/Articles/Threading.html#//apple_ref/doc/uid/20001289-CEGJFDFG

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容