 <p>Fork join style frameworks usually use work stealing to schedule task. I.e. every thread has its own scheduler. And new task are enqueued in the same thread as they were created. Only when the queue of one thread's scheduler gets empty, it "steals" task, aka work, from another scheduler. </p> <p>This is a obviously a simplification. </p>