【问题标题】:How does Thread() work in Kotlin?Thread() 在 Kotlin 中是如何工作的?
【发布时间】:2018-03-13 08:12:02
【问题描述】:

我想在一个线程中执行一个任务,写了如下代码:

Thread().run {
    Log.i("TEST", "in thread")
    Thread.sleep(5000);
    transactionStatus = ApiFactory.getInstance().transactionService.abortTransaction()
    synchronized(TestTransactionPayAbort.lock) {
        TestTransactionPayAbort.lock.notify()
    }
}

Log.i("TEST", "main")
synchronized(TestTransactionPayAbort.lock) {
    TestTransactionPayAbort.lock.wait()
}

根据调试器,在执行Thread().run{} 之前,我在线程 4 中。 执行Thread.sleep() 后,调试器告诉我线程 4 正在休眠,而我希望看到线程 5 正在休眠。关于Log():我立即看到 in threadmain 5 秒后。

我的错误是什么?

【问题讨论】:

标签: android multithreading kotlin


【解决方案1】:

我认为您正在寻找的语法是:

Thread {
    // your execution code 
}.start()

另请阅读this answer 了解更多信息。

【讨论】:

  • 谢谢@Thomas,链接的答案中也提到了
  • @s1m0nw1,是的,您对我正在寻找的东西是正确的,但是这个syntax 呢?
猜你喜欢
  • 2017-08-12
  • 2019-08-25
  • 1970-01-01
  • 2020-04-13
  • 2020-09-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多