package main import "runtime"
// GOMAXPROCS=1 var sum1, summain int64 func add1() { for i := 0; i < 10000; i++ { for j := 0; j < 10000; j++ { sum1++ } } } func bar() { for { add1() } } func main() { go bar() runtime.Gosched() println("debug>>>") } above is my example code,when I set GOMAXPROCS=1 and build with -gcflags "-N -l" the println("debug>>>") don't execute I just doubt the go runtime support peempt schedule in call function, it don't work ?? 在 2017年9月4日星期一 UTC+8下午2:20:37,John Souvestre写道: > > Although a goroutine isn’t pre-emptible by the Go scheduler, there is an > opportunity whenever it does something which blocks or when it calls a > non-inlined function. So generally the GC’s STW can take place pretty > quickly. But if you are doing something with is totally compute bound then > it can be a problem. An easy solution is to insert a call to > runtime.Gosched() every so often. > > > > I believe that there is an ongoing discussion about a way for Go to plan > ahead and be able to handle even these cases, but it’s something for the > future. > > > > John > > John Souvestre - New Orleans LA > > > > *From:* golan...@googlegroups.com <javascript:> [mailto: > golan...@googlegroups.com <javascript:>] *On Behalf Of *??? > *Sent:* 2017 September 04, Mon 00:47 > *To:* golang-nuts > *Subject:* [go-nuts] golang gc stop the world how to stop cpu busy > goroutine? > > > > when have one or two cpu busy goroutine in my server (example for loop > empty), the gc stop the world how to stop the goroutine ? > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts...@googlegroups.com <javascript:>. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.