async parallel
No one really teaches programming within an async parallel frame. The problem is that most “good” applications or services are event-driven. That is because they are long-lasting and should not be a program just running a while-loop. The further problem is that it’s a pretty amorphous topic with vague definitions, etc. Even worse, each language implements it differently, from coroutines to thread pools and beyond.
I made this post not to talk about it because I am definitely not qualified. I made it as a meta-post of resources for understanding async and parallel behavior of programs. It’s a collection of rabbit holes, other blog posts, and documentation into understanding how to use this coding paradigm rightish1.
async
Async is difficult to understand because frameworks provide abstractions for it. The least productive way to think about it is hardware interrupts, so the best you can do is point to the kernel syscalls and say it allows for async.
parallel
It’s generally easy to understand the idea of multi-threading 2, even to the point of out-of-order execution black magic, but it is nice to have some resources to look at for reference.
- SIMD Wikipage
- Out-of-Order Execution Wikipage
- MapReduce Wikipage
- Insert pthreads Page