文章目录
GoLang之协程是怎样的存在[第一话]
“ 可以主动让出,
可以恢复,
所以,
协程到底是怎样的存在?”
因为用户程序不能操作内核空间,所以只能给协程分配用户栈。而操作系统对协程一无所知,所以协程又被称为“用户态线程”。
协程的思想早在1963年就被提出,主要是为了解决当时编译器实现中的问题。理解协程的关键在于,理解协程如何实现控制流的“主动让出”和“恢复”,而理解这些的关键在于理解协程拥有自己的执行栈,可以保存自己的执行现场。
虽然协程的概念很早就有,但是很长一段时间,主流的编程语言都没有提供对协程的原生支持,它只出现在一些小众语言中(Simula 和 Modula-2等)。
近些年,高并发大势所趋,用户态调度作为一种标准的多任务模型,获得了广泛的关注。越来越多的编程语言提供了对协程的支持,而真正让协程大放异彩的,是它在IO多路复用中的应用!