Multithreading 了解println(“${Thread.currentThread()}”的输出
当我打印出一个协同程序线程时Multithreading 了解println(“${Thread.currentThread()}”的输出,multithreading,kotlin,coroutine,Multithreading,Kotlin,Coroutine,当我打印出一个协同程序线程时 println("${Thread.currentThread()}") 它将显示 Thread[DefaultDispatcher-worker-1 @coroutine#4,5,main] 我知道 DefaultDispatcher-worker-1是当前运行的线程 @coroutine#4是coroutine名称 5是它运行的线程的优先级 main——这指的是什么?启动线程 我不明白main的作用是什么,尽管我知道它指的是main线
println("${Thread.currentThread()}")
它将显示
Thread[DefaultDispatcher-worker-1 @coroutine#4,5,main]
我知道
是当前运行的线程DefaultDispatcher-worker-1
是coroutine名称@coroutine#4
是它运行的线程的优先级5
——这指的是什么?启动线程main
main
的作用是什么,尽管我知道它指的是main
线程
它是父线程吗?(我对此表示怀疑,当我尝试使用非主父线程时,它仍然显示main
)是启动线程吗
如果没有,是什么?通过检查
线程的toString()
函数,发现
public String toString() {
ThreadGroup group = getThreadGroup();
if (group != null) {
return "Thread[" + getName() + "," + getPriority() + "," +
group.getName() + "]";
} else {
return "Thread[" + getName() + "," + getPriority() + "," +
"" + "]";
}
}
看起来它是线程组名称。它可能是启动它的函数的名称吗?不,函数未命名为main
。我在单元测试和Android代码中编写它,它没有main
函数。