package Ġcom . same lo dy . samples . kotlin . coroutines Ċ Ċ import Ġcom . same lo dy . samples . kotlin . thread Name Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġvar Ġis Door Open Ġ= Ġfalse ĊĠĠĠ Ġprintln (" [$ thread Name ] Unlock ing Ġthe Ġdoor ... Ġplease Ġwait .") ĊĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġdelay ( 3 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġprintln (" [$ thread Name ] The Ġdoor Ġopen Ġnow .") ĊĠĠĠĠĠĠĠ Ġis Door Open Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġrepeat ( 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" [$ thread Name ] Trying Ġto Ġopen Ġthe Ġdoor ...") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 8 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Door Open ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" [$ thread Name ] Opened Ġthe Ġdoor !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" [$ thread Name ] The Ġdoor Ġis Ġstill Ġlocked ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠThread . sleep ( 5 0 0 0 ) Ċ }