package Ġchapter 7 Ċ Ċ import Ġkotlin . concurrent . thread Ċ Ċ /** Ċ Ġ* ĠChapter : ĠMaking ĠAs ynchronous Ġprogramming Ġgreat Ġagain Ċ Ġ* ĠRecipe : ĠExec uting Ġtasks Ġin Ġbackground Ġusing Ġthreads Ċ Ġ*/ Ċ fun Ġmain ( var arg Ġargs : ĠString ) Ġ{ ĊĠĠĠ Ġprintln (" Running Ġon Ġ${ getCurrent Thread Name () }") ĊĊĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Starting Ġasync Ġoperation Ġon Ġ${ getCurrent Thread Name () }") ĊĠĠĠĠĠĠĠ Ġ` 5 Ġsec Ġlong Ġtask `() ĊĠĠĠĠĠĠĠ Ġprintln (" Ending Ġasync Ġoperation Ġon Ġ${ getCurrent Thread Name () }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Starting Ġasync Ġoperation Ġon Ġ${ getCurrent Thread Name () }") ĊĠĠĠĠĠĠĠ Ġ` 2 Ġsec Ġlong Ġtask `() ĊĠĠĠĠĠĠĠ Ġprintln (" Ending Ġasync Ġoperation Ġon Ġ${ getCurrent Thread Name () }") ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġ` 5 Ġsec Ġlong Ġtask `() Ġ= ĠThread . sleep ( 5 0 0 0 ) Ċ Ċ private Ġfun Ġ` 2 Ġsec Ġlong Ġtask `() Ġ= ĠThread . sleep ( 2 0 0 0 ) Ċ Ċ private Ġfun ĠgetCurrent Thread Name (): ĠString Ġ= ĠThread . currentThread (). name Ċ