如何在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()}") }