package Ġorg . mag ical water . mg kotlin . mg util sk t . util Ċ Ċ import Ġandroid . os . Looper Ċ import Ġorg . jetbrains . ank o . do Async Ċ import Ġorg . jetbrains . ank o . ui Thread Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġ å¿Ĺ æľ ĭ Ġon Ġ 2 0 1 7 / 1 2 / 9 Ċ Ġ* Ġ çı¾åľ¨ ç· ļ ç¨ĭ çļĦ ä½¿çĶ¨ å¾Ī æĸ¹ä¾¿ , Ġ åĽłæŃ¤ æŃ¤ èĻ ķ åıªæĺ¯ å°ģ è£ Ŀ äºĨ å¤ļ ç· ļ ç¨ĭ ä½ µ çĻ ¼ çŃīå¾ħ çļĦ æĥħ å½¢ . Ċ Ġ*/ Ċ class ĠMG Thread Utils Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// è½ ī åŃĲ ç· ļ ç¨ĭ , Ġ éĽ ĸ çĦ¶ kotlin å¾Ī æĸ¹ä¾¿ äºĨ , Ġ ä½Ĩ éĤ Ħ æĺ¯ ç¿ Ĵ æħ £ åľ¨ éĢĻ çµ± ä¸Ģ æİ§åĪ¶ ĊĠĠĠĠĠĠĠ Ġfun Ġin Sub ( handler : Ġ() Ġ-> ĠUnit ): ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠThread Ġ{ Ġhandler () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġt ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// å¤ļ ç· ļ ç¨ĭ ä½ µ çĻ ¼ , Ġ åĤ ³ åħ¥ ç· ļ ç¨ĭ æķ¸ éĩı ĊĠĠĠĠĠĠĠ Ġ// handler åĽŀ åĤ ³ éĸĭå§ĭ åŁ · è¡Į çļĦ ç· ļ ç¨ĭ ĊĠĠĠĠĠĠĠ Ġfun Ġin Sub Multiple ( count : ĠInt , Ġhandler : Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthreads : ĠMutable List < Thread > Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" é¡ ¯ ç¤º ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" é¡ ¯ ç¤º 2 Ġi Ġ= Ġ$ i ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Ġ= Ġ ĠThread Ġ{ Ġhandler ( i ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthreads . add ( thread ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( thread Ġin Ġthreads ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread . join () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdelay Response ( delay : ĠLong , Ġhandler : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( delay ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ Ġhandler () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// æª ¢ æŁ¥ æĺ¯åĲ¦ çĤº ä¸» ç· ļ ç¨ĭ ĊĠĠĠĠĠĠĠ Ġfun Ġis Main (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠThread . currentThread () Ġ== ĠL ooper . get Main Looper (). thread ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }