golang多核设置

golang多核设置,第1张

概述单核执行如果for前面或者中间不延迟,主线程不会让出CPU,导致异步的线程无法执行, 从而无法设置flag的值,从而出现死循环 实例代码: package mainimport ( "fmt" "runtime" _ "time")var ( flag = false str  string)func foo() { flag = true str = "setup 

单核执行如果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多核设置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1286531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存