Summary
Simple generators/coroutines are constructs that can be heavily used in synchronous programming to improve use cases in which you have to deal with large data structures. The principal benefit of understanding those concepts is that you gain access to cooperative execution without too much hassle. Also, it prepares the ground for extending the coroutines’ capabilities into Python's standard asynchronous programming interface. In this chapter, we have introduced asyncio module basics that let coroutines be executed asynchronously and give you some tooling to measure performance in an unobtrusive way.The next chapter will go deeper into the asyncio module, exploring not only coroutines but also other types of awaitable objects that open the door to model solutions beyond the scope of coroutines. Also, we will revisit the concept of coroutines by implementing them in other execution contexts distinct from the standard asyncio context.