关于正常退出写法的疑问

来源:4-9 watch监听目录变化

Echo鑫

2018-11-05

// 正常退出
for {
	time.Sleep(1 * time.Second)
}
老师为什么正常退出,要这么写,给我感觉好像就是一个无限睡眠状态,但仍然没能释放线程CPU一样。
写回答

1回答

小鱼儿老师

2018-11-06

这段代码运行在一个协程中,即便是main()方法也是被Go调度在一个协程中的,所以每当Sleep的时候就会给Go runtime机会调度这个协程,这里Sleep就是暂时挂起了,那么当前线程就让出来可以继续调度其他协程了。 

0
1
Echo鑫
老师,那为什么不直接杀死这个协程呢?
2018-11-07
共1条回复

Go语言开发分布式任务调度 轻松搞定高性能Crontab

分布式系统设计+高并发细节处理,一次性让你“晋级”到位

1136 学习 · 177 问题

查看课程