如何在Kotlin中初始化线程?

在Java中它通过接受一个实现可运行的对象来工作:

Thread myThread = new Thread(new myRunnable()) 

myRunnable是一个实现Runnable的类。

但是当我在Kotlin尝试这个时,似乎并不奏效:

 var myThread:Thread = myRunnable:Runnable 

它很简单…简单地初始化一个Thread对象: val t = Thread()

然后,用一个可选的Runnable你可以像这样传递一个lambda:

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

更简单的版本可能会像这样传递一个Runnable的匿名实现:

 Thread(Runnable { print(4) }) 

可运行:

 val myRunnable = runnable { } 

线:

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

您在这里看不到Runnable:在Kotlin中,它可以轻松地用lambda表达式替换。 有没有更好的办法? 当然! 以下是如何实例化和启动线程Kotlin风格:

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