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

В 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); } 
  • Как собрать асинхронный ответ с помощью RxJava
  • java.lang.NoClassDefFoundError: kotlin / jvm / internal / Intrinsics в libgdx
  • Удалить разрыв в Kotlin при выражении
  • Спецификация Jpa, чтобы найти подмножество значения поля
  • Как получить фиксированное количество изменяемых размеров ячеек без заполнения в javafx?
  • Как создать .jar (Создать исполняемый файл) встроенного сервера Ktor
  • Почему при создании этого проекта появляется ошибка «Нет дескрипторов сборки».
  • Можно ли использовать метод данных equals () класса Kotlin без дальнейшей модификации в сочетании с JPA?
  • Как создать функцию расширения в Kotlin, которая работает с классом?
  • varargs, чтобы карта в Котлин
  • @Throws не влияет, когда цель является свойством
  • Давайте будем гением компьютера.