以下代码可以做到所有协程睡眠 3 秒后直接输出;
楼主是写 java 的,在想 java 要怎么能实现 go 通过协程实现的这个例子呢? (1)直接使用 100000 个线程执行,那内存占用和上下文切换太恐怖; (2)使用线程池一类的,参数设置不到位,根据原理只能一部分一部分执行,想全部执行,得参考(1)的线程数量...
有啥能实现吗?难道类似这就是 go 协程的魅力?
package main
import (
"strconv"
"time"
)
func say0(str string) {
time.Sleep(3 * time.Second)
println(str)
}
func main() {
for i := 0; i < 100000; i++ {
go say0("协程" + strconv.Itoa(i))
}
time.Sleep(1000 * time.Second)
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.