golang多核设置
发布时间:2020-12-16 18:38:18 所属栏目:大数据 来源:网络整理
导读:单核执行如果for前面或者中间不延迟,主线程不会让出CPU,导致异步的线程无法执行, 从而无法设置flag的值,从而出现死循环 实例代码: packagemainimport("fmt""runtime"_"time")var(flag=falsestrstring)funcfoo(){flag=truestr="setupcomplete!"}funcmain
单核执行如果for前面或者中间不延迟,主线程不会让出CPU,导致异步的线程无法执行, 从而无法设置flag的值,从而出现死循环 实例代码: packagemain import( "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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |