小编PAR*_*RUS的帖子

Golang:为什么 goroutine 不并行运行?

我有下面的示例,其中两个 goroutine 应该并行运行。但是如果你检查输出,第二个 goroutine 仅在第一个 goroutine 完成后运行。所以,它是顺序的。

\n\n

添加 2 个处理器:runtime.GOMAXPROCS(2)也没有帮助。我在 8 核 Mac pro 上运行,这绝对不是硬件问题。\n所以我的问题 - Golang 真的是并行的吗?如何使下面的示例并行运行?

\n\n

输出:

\n\n
Thread 1\nThread 1\n  \xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6....\nThread 1\nThread 1\nThread 2\nThread 2\n  \xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6....\nThread 2\nThread 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

去代码:

\n\n
package main\n\nimport (\n    "runtime"\n    "time"\n)\n\nfunc main() {\n\n    runtime.GOMAXPROCS(2)\n\n    go func() {\n        for i := 0; i < 100; i++ {\n            println("Thread 1")\n            //time.Sleep(time.Millisecond * 10)\n        }\n    }()\n\n    go func() {\n        for i := 0; i < 100; i++ {\n            println("Thread 2")\n            //time.Sleep(time.Millisecond …
Run Code Online (Sandbox Code Playgroud)

parallel-processing multithreading go

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

go ×1

multithreading ×1

parallel-processing ×1