线程内部线程:如果杀死父线程会怎样?

Sca*_*aux 4 java multithreading android

总的来说,有些事情我无法理解。就我而言,使用Java和Android。

假设我有一个名为Thread的线程A,它将启动thread B。如果线程A停止,则线程B将继续运行。这怎么可能?谁B现在属于线程?到主线程?

线程类

public class ParentThread extends Thread {

    public void run(){
        Log.e("PARENT THREAD", "STARTS RUNNING");
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    Log.e("CHILD THREAD", "IS ALIVE");
                    try {
                        Thread.sleep(1000);
                    }
                    catch (InterruptedException exc) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
        Log.e("PARENT THREAD", "STOPS RUNNING");
    }
}
Run Code Online (Sandbox Code Playgroud)

活动

new ParentThread().start();
Run Code Online (Sandbox Code Playgroud)

Logcat输出

public class ParentThread extends Thread {

    public void run(){
        Log.e("PARENT THREAD", "STARTS RUNNING");
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    Log.e("CHILD THREAD", "IS ALIVE");
                    try {
                        Thread.sleep(1000);
                    }
                    catch (InterruptedException exc) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
        Log.e("PARENT THREAD", "STOPS RUNNING");
    }
}
Run Code Online (Sandbox Code Playgroud)

gio*_*gio 5

来自docs Thread

线程是并发执行单元。它具有自己的调用堆栈,用于调用方法,其参数和局部变量。每个应用程序在启动时至少有一个线程在运行,即主线程组中的主线程。运行时将其自己的线程保留在系统线程组中。