How does concurrency play a role in coroutines?
 How do we examplify that coroutines use non-preemptive schedule, in other words, they use cooperative schedule and that they concurrently try to gain control of a thread?
Tags: kotlin, coroutines, tasking, multitasking