了解 println("${Thread.currentThread()}") 的输出
Understanding the output of println("${Thread.currentThread()}")
当我打印协程线程时
println("${Thread.currentThread()}")
会显示
Thread[DefaultDispatcher-worker-1 @coroutine#4,5,main]
我知道
DefaultDispatcher-worker-1
是当前 运行 在 中的线程
@coroutine#4
是协程名
5
是线程的优先级它是运行在
main
-- 这是指什么?启动线程?
我不明白 main
是干什么用的,虽然我知道那指的是 main
话题。
是父线程吗? (我怀疑是这样,当我尝试使用非主父线程时,它仍然显示 main
)
它是启动线程吗?
如果不是,那是什么?
通过查看Thread
的toString()
函数,发现
public String toString() {
ThreadGroup group = getThreadGroup();
if (group != null) {
return "Thread[" + getName() + "," + getPriority() + "," +
group.getName() + "]";
} else {
return "Thread[" + getName() + "," + getPriority() + "," +
"" + "]";
}
}
好像是线程组名
当我打印协程线程时
println("${Thread.currentThread()}")
会显示
Thread[DefaultDispatcher-worker-1 @coroutine#4,5,main]
我知道
DefaultDispatcher-worker-1
是当前 运行 在 中的线程
@coroutine#4
是协程名5
是线程的优先级它是运行在main
-- 这是指什么?启动线程?
我不明白 main
是干什么用的,虽然我知道那指的是 main
话题。
是父线程吗? (我怀疑是这样,当我尝试使用非主父线程时,它仍然显示 main
)
它是启动线程吗?
如果不是,那是什么?
通过查看Thread
的toString()
函数,发现
public String toString() {
ThreadGroup group = getThreadGroup();
if (group != null) {
return "Thread[" + getName() + "," + getPriority() + "," +
group.getName() + "]";
} else {
return "Thread[" + getName() + "," + getPriority() + "," +
"" + "]";
}
}
好像是线程组名