import kotlinx.coroutines.yield suspend fun suspendTask1() { println("Start task1 | Thread ${Thread.currentThread()}") yield() println("End task1 | Thread ${Thread.currentThread()}") } suspend fun suspendTask2() { println("Start task2 | Thread ${Thread.currentThread()}") yield() println("End task2 | Thread ${Thread.currentThread()}") } fun main() { println("Start main") runBlocking { launch { suspendTask1() } launch { suspendTask2() } println("Called task1 and task2 from ${Thread.currentThread()}") } println("End main") }