2 ms·
Coroutines, async, parallelism and concurrency is my main hobby. Business logic programmers shouldn't be dealing with machine level parallelism and async unles
by samsquire 3y ago
Coroutines, async, parallelism and concurrency is my main hobby.
Business logic programmers shouldn't be dealing with machine level parallelism and async unless heavily abstracted, such as in a job queue or evented message queue.
JMP or RET is how the machine transfers control flow at the machine level. So coroutines are a natural solution to switching between code at the machine layer.
If you're working in Javascript, then you shouldn't have to worry about this stuff.
Cooperative multitasking is elegant, within a process for scheduling but not as the main approach for the operating system to switch between processes, it's a subtle difference.
If the operating system depends on cooperative multitasking, some buggy processes can keep control flow to themselves. But using cooperative multitasking inside a process for code elegance, is a good way of scheduling and decoupling concerns.
I have a lightweight thread runtime similar to Go and I find event loops really interesting, I want to make the pain of async and parallelism go away.