e、libconcurrency、libcoro、ribs2、libdill、libaco、libco等等。此外人们做了用C语言的子例程和宏实现协程的大量尝试，并取得了不同程度的成功。Simon Tatham作出的贡献是这一方法的很好示例，它受到了达夫设备利用swtich语句“掉落”特性的启发，并且是Protothreads和类似实现的基础。这种方法的确可以提高代码段的可写性、可读性，但可维护性是存在争议的。这种不为每个协程维护独立的栈帧的实现方式主要缺点是，局部变量在经过从函数yield之后是不保存的