刚刚,阿里开源 iOS 协程开发框架 coobjc!( 五 )

  • 提供了对NSURLConnection和NSURLSession的协程化扩展 , 用于解决网络异步请求过程中的异步调用问题 。

  • 提供了对NSKeyedArchieve、NSJSONSerialization等解析库的扩展 , 用于解决解析过程中的异步调用问题 。

  • coobjc设计

    最底层是协程内核 , 包含了栈切换的管理、协程调度器的实现、协程间通信channel的实现等 。

    中间层是基于协程的操作符的包装 , 目前支持async/await、Generator、Actor等编程模型 。

    最上层是对系统库的协程化扩展 , 目前基本上覆盖了Foundation和UIKit的所有IO和耗时方法 。

    核心实现原理

    协程的核心思想是控制调用栈的主动让出和恢复 。 一般的协程实现都会提供两个重要的操作: