“现代学院”是 微视界启示录 中科学知识的系统化,通过简单易懂,诙谐有趣的文字,让大家能够系统化地接触知识化结构,建立起知识体系。
通过搜索引擎,大家都能轻松获取搜索词条,但目前这个网络环境中,有大量重复且并不是那么有效的案例。我们和其他全网站唯一的区别就是,我们是纵向向下探索编程世界的本质。
协程与子例程一样,协程(coroutine)也是一种程序组件。相对子例程而言,协程更为一般和灵活,但在实践中使用没有子例程那样广泛。协程源自 Simula 和 Modula-2 语言,但也有其他语言支持。
协程更适合于用来实现彼此熟悉的程序组件,如合作式多任务,迭代器,无限列表和管道。 协程最初在 1963 年被提出。
协程不是进程或线程,其执行过程更类似于子例程,或者说不带返回值的函数调用。
一个程序可以包含多个协程,可以对比与一个进程包含多个线程,因而下面我们来比较协程和线程。我们知道多个线程相对独立,有自己的上下文,切换受系统控制;而协程也相对独立,有自己的上下文,但是其切换由自己控制,由当前协程切换到其他协程由当前协程来控制。