arkbriar / blog

Blog powered by Hugo (https://gohugo.io)
1 stars 0 forks source link

p/structured-concurrency/ #3

Open beaudar-bot opened 2 years ago

beaudar-bot commented 2 years ago

代码杂谈:结构化并发

最近阅读的几篇文章都是围绕着编程来的。在我看来,编程语言/模型/抽象的一大重要目的是在保证核心功能和性能的基础上,让开发人员更容易地开发出不

https://blog.crazyark.xyz/p/structured-concurrency/

gengjiawen commented 2 years ago

Js的Promise.all算吗?

jyz0309 commented 2 years ago

这么看的话,go 的 WaitGroup 貌似也算是结构化并发的一种实践?

arkbriar commented 2 years ago

Js的Promise.all算吗?

@gengjiawen 感谢评论,JS 我几乎不懂,查了下 MDN 感觉是比较像的,就是在有一个 Promise 错误的时候不会等待其他 Promise 完成,控制流没有保证完全合起来

arkbriar commented 2 years ago

这么看的话,go 的 WaitGroup 貌似也算是结构化并发的一种实践?

@jyz0309 我和 Smith 的观点一致,ForkJoin 模型和 WaitGroup 都是更为底层的模型,使用的时候自由度很高(可以写出很坏的代码),但没有在语言/库层面严格保证安全。

相比之下,errgroup 更像一点,但貌似没有处理 panic。

另外一个有意思的话题是 context 的传递,可以看下这篇文章,context 的设计非常棒,就是需要到处传递,如果能有一个更简洁的方式会对我这种懒人程序员更友好。

P.S. 这玩意需要手动回复... 我去问问 beaudar 的作者能不能加个回复的按钮 🤣

gengjiawen commented 2 years ago

Js的Promise.all算吗?

@gengjiawen 感谢评论,JS 我几乎不懂,查了下 MDN 感觉是比较像的,就是在有一个 Promise 错误的时候不会等待其他 Promise 完成,控制流没有保证完全合起来

还有个 Promise.allSettled()