libcsp: 一个 10 倍于 Golang 的高性能 C 语言并发库

2020-04-07 09:10:07 +08:00
 Lime

特性:

Github: https://github.com/shiyanhui/libcsp

文档: https://libcsp.com (英文, 中文文档找时间写一下)

6023 次点击
所在节点    分享创造
24 条回复
baoyexi
2020-04-08 10:27:19 +08:00
@fakevam 非常感谢您的分享,受益颇多。
lfcyme
2020-04-08 12:33:04 +08:00
感谢分享
yulon
2020-04-08 23:58:45 +08:00
你是不是对 goroutine 有什么误解,如果只是并行计算任务,直接用线程池就行了,一颗 CPU 的并行数几乎是死的,后面排队的是线程还是协程还是单纯的函数队列都只是内存大小的区别。

协程是为了并发,把异步 I/O 封装成同步 I/O,性能差别出在休眠和唤醒上面,也就是把异步封装成同步的代价。

异步 I/O 是为了将所有任务需要等待的地方放到一起等待,省去多余的等待,让原来需要等待的线程可以一直计算来利用 CPU 。

结果你的实现其他等待的线程都需要空转,根本不做事确一直占着 CPU,完全本末倒置了。
Lime
2020-04-09 12:46:50 +08:00
@yulon 认真看下代码?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/659980

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX