首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Kotlin中初始化线程?

如何在Kotlin中初始化线程?
EN

Stack Overflow用户
提问于 2017-10-01 01:57:03
回答 8查看 70K关注 0票数 50

在Java中,它的工作方式是接受一个实现runnable的对象:

Thread myThread = new Thread(new myRunnable())

其中myRunnable是实现Runnable的类。

但当我在Kotlin中尝试时,它似乎不起作用:

var myThread:Thread = myRunnable:Runnable
EN

回答 8

Stack Overflow用户

发布于 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()}")
    }
票数 16
EN

Stack Overflow用户

发布于 2018-07-13 02:20:56

我做了以下工作,它看起来像预期的那样工作。

Thread(Runnable {
            //some method here
        }).start()
票数 12
EN

Stack Overflow用户

发布于 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)非常有用,这样您的应用程序才能正确终止。

通常情况下,应用程序将一直等到所有非守护进程线程终止。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46505528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档