我有下面的示例,其中两个 goroutine 应该并行运行。但是如果你检查输出,第二个 goroutine 仅在第一个 goroutine 完成后运行。所以,它是顺序的。
\n\n添加 2 个处理器:runtime.GOMAXPROCS(2)也没有帮助。我在 8 核 Mac pro 上运行,这绝对不是硬件问题。\n所以我的问题 - Golang 真的是并行的吗?如何使下面的示例并行运行?
\n\n输出:
\n\nThread 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\nRun Code Online (Sandbox Code Playgroud)\n\n去代码:
\n\npackage 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)