“协程”的特点
注意:协程是为了在非常小的设备上使用而实现的,但现在很少在领域中使用。因此尽管没有计划从代码中删除协程,但也没有计划进一步开发这些协程。
协程在概念上类似于任务,但有以下根本差异(详述在协程文档页面):
- 堆栈使用
应用程序中的所有协程共用一个堆栈。与使用任务编写的类似应用程序相比,这大大降低了所需的 RAM。
- 调度和优先级
协程间使用优先级协同调度,但可以包含在使用抢占式任务的应用程序中。
- 宏实现
协程是通过一组宏实现的。
- 使用限制
减少 RAM 使用是以一些严格限制协程构造为代价的。
协程总结
 |
协程间共享堆栈会降低 RAM 使用。 |
 |
协作操作减少了重入问题。 |
 |
可以在不同架构间移植。 |
 |
相对于其他协程完全优先,但如果混用协程和任务,那么总是会被任务抢占。 |
 |
需要特别考虑堆栈不足的问题。 |
 |
对 API 调用位置有限制。 |
 |
只在协程间进行协作操作。 |
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.