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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
看到官方文档 async/await 一些简介,没有搜到更多的资料。
我的疑惑是:
官方实现是无栈的实现,那么像 golang goroutine/rust tokio 这样有栈且可以公平调度到多核 runtime 这类实现是由社区实现?
官方所宣传的好处可挂起的无堆栈协程这种实现有啥实质性的好处,没有污染性?但是我个人理解在调度在多核这类公平性上(golang gmp)应该是有欠缺的,请大佬们赐教。
Beta Was this translation helpful? Give feedback.
All reactions