请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

time.sleep 本身有消耗吗?

package main

import (
	"fmt"
	"time"
)

var i uint32

func main() {
	//fn, _ := os.OpenFile("cpu.profile", os.O_CREATE|os.O_RDWR, 0644)
	//defer fn.Close()
	//pprof.StartCPUProfile(fn)
	//defer pprof.StopCPUProfile()
	go add()

	time.Sleep(1 * time.Second)
	fmt.Println(i)
}

func add() {
	for {
		i++
		time.Sleep(1 * time.Millisecond)
	}
}

预期打印接近1000的数字,最后打印了870左右的数字。老师,请问这是什么原因?

正在回答 回答被采纳积分+3

1回答

Moody 2022-05-28 11:42:25
这是个并发冲突问题,6-1节会讲到
0 回复 有任何疑惑可以回复我~
  • 提问者 冼星扉 #1
    我设置一个cpu也会这样,是不是time.sleep调度消耗
    回复 有任何疑惑可以回复我~ 2022-05-28 11:51:25
  • Moody #2
    嗯,是有消耗的
    回复 有任何疑惑可以回复我~ 2022-05-28 11:54:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信