Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 了解println(“${Thread.currentThread()}”的输出_Multithreading_Kotlin_Coroutine - Fatal编程技术网

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#4
    是coroutine名称
  • 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
函数。