计算机程序的一类组件，推广了协作式多任务的子程序，允许执行被挂起与被恢复。相对子例程而言，协程更为一般和灵活，但在实践中使用没有子例程那样广泛。协程更适合于用来实现彼此熟悉的程序组件，如协作式多任务、异常处理、事件循环、迭代器、无限列表和管道。根据高德纳的说法, 马尔文·康威于1958年发明了术语“coroutine”并用于构建汇编程序 ，关于协程最初的出版解说在1963年发表。
同子例程的比较.协程可以通过yield（取其“让步”之义而非“出产”）来调用其它协程，接下来的每次