Process Vs Thread Vs Coroutine

ProcessThreadCoroutine
DifferenceA process can have many threadA thread can only belong to 1 processCan run in 1 OR Multiple thread
MemoryDifferent process DO NOT share memory if they're not forked from one anotherThread will share memoryCoroutine can share memory since it's single thread
ConcurrencyDifferent processes can have concurrency and parallelismA Thread will allow concurrency and parallelismDepends on the structure. But guarantee to have concurrency

Coroutine is like Event Queue to execute concurrency.