A “heavy weight” concurrency is where each of the simultaneous performers is expensive and / or has a lot of overhead.
A “light weight” concurrency is where each of the competing artists is cheap to start with and / or has little overhead.
Processes are generally more expensive to manage the OS than threads, since each process requires an independent address space and various control structures, while threads within the process share these structures.
Consequently, processes are considered heavyweights, while flows are light.
However, in some contexts, threads are considered heavyweights, and a “lightweight” concurrency object is a kind of “task.” In these contexts, the runtime typically performs these tasks in the thread pool, pausing them to block and reuse threads for other tasks.
source share