I've recently noticed that many of my colleagues struggle to grasp the concepts surrounding `async` and `await` in Python, so I took some time to write a blog post explaining the topic in detail. However, since Python isn't my primary programming language, I'm looking for someone who has a deep understanding of async/await, Awaitable, and coroutines in Python to review my post for accuracy. You can check it out here: [my blog post](https://yoric.github.io/post/quite-a-few-words-about-async/). I appreciate any feedback!
2 Answers
I didn't spot any major factual mistakes, but it's worth mentioning that your post could clarify the core reasons behind using async/await better. You initially talk about reactivity, which is great, but you might want to dive deeper into the overhead of OS threads later on. Also, it would help to include a comparison of the pros and cons for different concurrency methods, including processes and OS threads. It's interesting that you discussed how Golang handles it; maybe look into greenthreading too, as it’s been used in other languages for a while.
Overall, the content is solid, but I noted a couple of little tweaks:
1. You're missing a function return type hint in your code — `def fibonacci(n: int): int` should be updated to `def fibonacci(n: int) -> int:`.
2. When creating threads, use `start()` instead of `run()`. Just a small thing, but important to ensure new threads spawn correctly.
3. One more thing, I noticed you referenced `parent` instead of `parent_id` in a part of your code. Just a heads up!
Thanks for catching those! I’ll make the adjustments.
Totally agree! Exploring more on the different threading models would lend your post a lot of depth.