单核执行如果for前面或者中间不延迟,主线程不会让出cpu,导致异步的线程无法执行,
从而无法设置flag的值,从而出现死循环
实例代码:
packagemainimport( "fmt" "runtime" _"time")var( flag=false strstring)funcfoo(){ flag=true str="setupcomplete!"}funcmain(){ runtime.GOMAXPROCS(1) gofoo() //time.Sleep(1*time.Second) for{ ifflag{ break } } fmt.Println(str)}
解决办法:1、for中间或者前面加延迟 2、runtime.GOMAXPROCS(1)改成runtime.GOMAXPROCS(2)
总结以上是内存溢出为你收集整理的golang多核设置全部内容,希望文章能够帮你解决golang多核设置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)