¿Cómo inicializar un hilo en Kotlin?

En Java funciona aceptando un object que implementa ejecutable:

Thread myThread = new Thread(new myRunnable()) 

donde myRunnable es una class que implementa Runnable .

Pero cuando probé esto en Kotlin, parece que no funciona:

 var myThread:Thread = myRunnable:Runnable 

Es sencillo … Inicializando de forma simple un object de Thread : val t = Thread()

Luego, con un Runnable opcional, puedes pasarlo con un lambda como este:

 Thread{ Thread.sleep(1000) println("test") } 

La versión más simple para usted probablemente esté pasando una implementación anónima de Runnable así:

 Thread(Runnable { print(4) }) 

Runnable:

 val myRunnable = runnable { } 

Hilo:

 Thread({ // call runnable here println("running from lambda: ${Thread.currentThread()}") }).start() 

No ve un Runnable aquí: en Kotlin puede replacese fácilmente con una expresión lambda. ¿Hay una mejor manera? ¡Por supuesto! Así es como puedes crear instancias y comenzar un hilo de Kotlin-style:

 thread(start = true) { println("running from thread(): ${Thread.currentThread()}") } 

Por favor testing este código:

 Thread().run { Thread.sleep(3000); }