coobjc
coobjc copied to clipboard
项目凉凉了?
项目凉凉了?
这不是常规操作嘛🤣
不过作为学习项目还是很不错的
kpi+++
这不是阿里的常规操作嘛🤣升P了估计
真是可惜了,还是用其他的开源项目,腾讯和阿里的 后期维护的少
我来回复一下吧,项目没有继续更新的几个原因:
- 关于对协程相关的探索,引领大家的学习和思考的目的基本达到了。
- coobjc 实现的是有栈协程,通过运行时切独立的栈来实现切换,但是在高级语言上容易遇到和”线程模型下的运行时特性“不可调和的问题,比如 ObjC 的 autorelease 会和线程的 runloop 绑定、JavaScriptCore 会读取栈地址做运算导致 Crash 等。这些问题是不太好在运行时解决的,最好的方式其实是语言本身在编译层面的实现的无栈协程:https://developer.aliyun.com/article/703538 从这个角度使用时不宜大范围铺开使用,造成了一定的局限性。
- swift 本身的 async/await 即将支持: https://github.com/apple/swift-evolution/blob/main/proposals/0296-async-await.md 发布后我们就可以放心的使用官方的协程了。不排除以后再重新复活这个项目
能不用他们的,就尽量不要用他们的
@NianJi
关于第二点, autoreleasepool的问题, 技术不是要100%解决全部问题, 即使是swift, 也不允许 autoreleasepool中有异步代码。 所以这个问题不是问题, 通过代码扫描规则报错就可以。
关于JSC的问题, 我觉得可以专门有一个JS线程, 就跟 mainthread一样。