在 Java 中,它通过接受实现可运行的对象来工作:
Thread myThread = new Thread(new myRunnable())
其中 myRunnable
是一个实现 Runnable
的类。
但是当我在 Kotlin 中尝试这个时,它似乎不起作用:
var myThread:Thread = myRunnable:Runnable
最佳答案
Kotlin 带有一个标准库函数 thread
,我建议在这里使用它:
public fun thread(
start: Boolean = true,
isDaemon: Boolean = false,
contextClassLoader: ClassLoader? = null,
name: String? = null,
priority: Int = -1,
block: () -> Unit): Thread
你可以这样使用它:
thread {
Thread.sleep(1000)
println("test")
}
它有许多可选参数,例如不通过将 start
设置为 false
直接启动线程。
替代品
要初始化类 Thread
的实例,请调用其构造函数:
val t = Thread()
您还可以将可选的 Runnable
作为 lambda(SAM 转换)传递,如下所示:
Thread {
Thread.sleep(1000)
println("test")
}
更明确的版本会像这样传递 Runnable
的匿名实现:
Thread(Runnable {
Thread.sleep(1000)
println("test")
})
请注意,前面显示的示例仅创建 Thread
的实例,但实际上并未启动它。为了实现这一点,您需要显式调用 start()
。
https://stackoverflow.com/questions/46505528/
相关文章:
java - 错误 :Kotlin: Unsupported plugin option: org.
android - 应用程序模块中引用的 android 库模块的“ Unresolved 引用”错
android - 为全屏 Activity 摆脱不必要的根布局
android - 如何在 kotlin 协程上进行指数退避重试
android - 将 LiveData 与数据绑定(bind)一起使用
kotlin - 在 Kotlin 中对可空整数使用 "greater than"、 "less t
android - kotlin 'onCreate' 不会覆盖任何内容