在Java中,它的工作方式是接受一个实现runnable的对象:
Thread myThread = new Thread(new myRunnable())
其中myRunnable
是实现Runnable
的类。
但当我在Kotlin中尝试时,它似乎不起作用:
var myThread:Thread = myRunnable:Runnable
发布于 2017-10-01 02:12:28
Runnable:
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()}")
}
发布于 2018-07-13 02:20:56
我做了以下工作,它看起来像预期的那样工作。
Thread(Runnable {
//some method here
}).start()
发布于 2018-02-17 01:27:46
最好的方法是使用kotlin.concurrent
中的thread()
生成器函数:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.concurrent/thread.html
您应该检查它的默认值,因为它们非常有用:
thread() { /* do something */ }
请注意,您不需要像线程示例中那样调用start()
,也不需要提供start=true
。
对于长时间运行的线程要小心。指定thread(isDaemon= true)
非常有用,这样您的应用程序才能正确终止。
通常情况下,应用程序将一直等到所有非守护进程线程终止。
https://stackoverflow.com/questions/46505528
复制相似问题