Thread() 在 Kotlin 中如何工作?

fra*_*lbo -1 multithreading android kotlin

我想在线程内执行任务并编写了以下代码:

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()
}
Run Code Online (Sandbox Code Playgroud)

根据调试器的说法,在执行之前Thread().run{},我位于线程 4 内。执行之后Thread.sleep(),调试器告诉我线程 4 正在休眠,而我原本期望看到线程 5 正在休眠。关于Log():我立即在线程主线程中看到: 5秒后

我在这里犯了什么错误?

s1m*_*nw1 5

我认为您\xe2\x80\x99正在寻找的语法是:

\n\n
Thread {\n    // your execution code \n}.start()\n
Run Code Online (Sandbox Code Playgroud)\n\n

另请阅读此答案以获取更多信息。

\n