Как инициализировать поток в Котлине?

В Java он работает, принимая объект, который реализует runnable:

Thread myThread = new Thread(new myRunnable()) 

где myRunnable – это класс, реализующий Runnable .

Но когда я попробовал это в Котлине, он, похоже, не работает:

 var myThread:Thread = myRunnable:Runnable 

Это прямолинейно … Простое инициализация объекта Thread : val t = Thread()

Затем, с дополнительным Runnable вы можете передать его с помощью лямбда следующим образом:

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

Простейшая версия для вас, вероятно, передает анонимную реализацию Runnable следующим образом:

 Thread(Runnable { print(4) }) 

Runnable:

 val myRunnable = runnable { } 

Нить:

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

Здесь вы не видите Runnable: в Kotlin его легко заменить на лямбда-выражение. Есть ли способ лучше? Конечно! Вот как вы можете создать экземпляр и начать поток Kotlin-стиля:

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

Попробуйте этот код:

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