Process Vs Thread Vs Coroutine

ProcessThreadCoroutine/eventloopGoroutine/Virtual thread
DifferenceA process can have many threadA thread can only belong to 1 processFor python/node js, coroutine only 1 thread (event loop). For other languages, look at goroutine/virtual threadCan run in multiple thread
MemoryDifferent process DO NOT share memory if they're not forked from one anotherThread will share memoryHas a single event loop to coordinate between task (should not be blocked)1 OS thread can handle N virtual threads. Not limited by event loop
ConcurrencyDifferent processes can have concurrency and parallelismA Thread will allow concurrency and parallelismDepends on the structure. But guarantee to have concurrencyHigh concurrency throughput

Coroutine is like Event Queue (event loop) to execute concurrency.