Replies: 5 comments 6 replies
-
问题有些大,关于哪种方式更公平,感觉更多要看使用场景,而且公平的定位对每个人来说都可能不一样,所以还是建议就事论事,举个实际的例子会更利于后面的讨论。 |
Beta Was this translation helpful? Give feedback.
-
看了下这个,稍微总结下,stage2 的 async 现在是卡在两点上:
|
Beta Was this translation helpful? Give feedback.
-
go的goroutine实际上的模型是GMP,M个系统级线程,P个内核handle,G则是goroutine,这个解释是普遍的一个说法 更确切的将,你可以理解为是go官方实现的一个抢占式的用户协程,普通的协程库设计的原则是协程之间互相谦让,而go这边则不需要,由go的调度器实现直接抢占。 并且go的调度器会直接帮开发者实现这个过程,具体说起来可能比较复杂,可以看这篇文章:https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-goroutine/ |
Beta Was this translation helpful? Give feedback.
-
关于目前zig的async特性,别抱太大期望,按照目前他们的规划,这个是很靠后的工作 |
Beta Was this translation helpful? Give feedback.
-
https://github.com/ziglang/zig/wiki/FAQ#what-is-the-status-of-async-in-zig 最新的动态 |
Beta Was this translation helpful? Give feedback.
-
看到官方文档 async/await 一些简介,没有搜到更多的资料。
我的疑惑是:
官方实现是无栈的实现,那么像 golang goroutine/rust tokio 这样有栈且可以公平调度到多核 runtime 这类实现是由社区实现?
官方所宣传的好处可挂起的无堆栈协程这种实现有啥实质性的好处,没有污染性?但是我个人理解在调度在多核这类公平性上(golang gmp)应该是有欠缺的,请大佬们赐教。
Beta Was this translation helpful? Give feedback.
All reactions