1.协程对应操作系统里面的什么
2.golang是如何实现的
什么是协程?
1.调度任务:
cpu最小执行任务是线程,有多个线程时,cpu会给每个线程分配一个时间片,到时后切换到另一个线程。
协程可以由用户进行调度,决定什么时候让渡给其他协程。在golang里,当一个协程出现阻塞后,runtime会把这个协程放到其他线程里,让cpu执行其他的协程。
2.执行效率
协程所占的内存非常小4-5k,所以一个物理机可以开启很多的协程
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
goroutine是Go语言运行库的功能,不是操作系统提供的功能,goroutine不是用线程实现的。
goroutine就是一段代码,一个函数入口,以及在堆上为其分配的一个堆栈。所以它非常廉价,我们可以很轻松的创建上万个goroutine,但它们并不是被操作系统所调度执行。