Comments (7)
我来回复一下吧,项目没有继续更新的几个原因:
- 关于对协程相关的探索,引领大家的学习和思考的目的基本达到了。
- 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 发布后我们就可以放心的使用官方的协程了。不排除以后再重新复活这个项目
from coobjc.
kpi+++
from coobjc.
这不是常规操作嘛🤣
from coobjc.
不过作为学习项目还是很不错的
from coobjc.
这不是阿里的常规操作嘛
from coobjc.
真是可惜了,还是用其他的开源项目,腾讯和阿里的 后期维护的少
from coobjc.
能不用他们的,就尽量不要用他们的
from coobjc.
关于第二点, autoreleasepool的问题, 技术不是要100%解决全部问题, 即使是swift, 也不允许 autoreleasepool中有异步代码。 所以这个问题不是问题, 通过代码扫描规则报错就可以。
关于JSC的问题, 我觉得可以专门有一个JS线程, 就跟 mainthread一样。
from coobjc.
Related Issues (20)
- await返回以后线程的上下文没有恢复 HOT 3
- 不改代码将IO变异步的问题
- Actors in coswift HOT 2
- Using Swift Package Manager compile error HOT 1
- fatal error: 'co_queue.h' file not found
- 刚看了swift5.4更新,await以后会变成关键字? HOT 5
- 在.mm 文件里使用编译报错
- COPromise 的 cancle 调用没有效果。 HOT 1
- iOS15.0 cofishhook.c crash HOT 8
- iOS15.0 cofishhook crash. HOT 3
- 【请教】请问coobjc是如何实现完整backtrace的? HOT 2
- demo下载下来运行报错 HOT 2
- 【崩溃】调用co_launch{ } 必现crash HOT 2
- batch_await HOT 2
- cokit compile failed on Xcode 11 HOT 7
- iOS13 crash
- build failed when i use coobjc in xxx.mm
- #import <coobjc.h>写入pch文件导致编译失败
- ios11.1 在co_launch中WebView执行js闪退 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coobjc.