为什么当time.Sleep(time.Nanosecond)被注释掉后,下面的程序会挂起?packagemainimport"fmt"import"time"import"sync/atomic"funcmain(){varopsuint64=0fori:=0;i第二个问题,为什么runningthisprograminthesandbox导致“处理时间过长”? 最佳答案 因为goroutine是协作式(不是完全抢占式)的任务,上下文切换只有在有一些IO,系统调用,time.Sleep(),或者调用需要扩展的大函数时才会发生堆栈。