почему синхронизированный (ThreadB), уничтожение ThreadB может автоматически уведомлять?

package test1;

public class ThreadA extends Thread {
    private ThreadB b;

    public ThreadA(ThreadB b) {
        super();
        this.b = b;
    }

    @Override
    public void run() {
        try {
            synchronized (b) {
                b.start();
                System.out.println("first run !");
                b.wait();
                System.out.println("ThreadB destory after ThreadA auto notify");
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

package test1;

public class ThreadB extends Thread {
    @Override
    public void run() {
        try {
            System.out.println("b run begin timer=" + System.currentTimeMillis());
            Thread.sleep(6000);
            System.out.println("b run   end timer=" + System.currentTimeMillis());
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

package test1;

public class Run {
    public static void main(String[] args) {
        ThreadB b = new ThreadB();
        b.setName("B");
        ThreadA a = new ThreadA(b);
        a.setName("A");
        a.start();
    }
}

результат печати: первый запуск! b таймер начала выполнения = 1587441580267 b таймер завершения выполнения = 1587441586267 удаление ThreadB после автоматического уведомления ThreadA

почему ThreadB уничтожается после автоматического уведомления ThreadA ??

Я хочу знать ответ на уровне hotspotVM。

благодарю вас !


person startjava    schedule 21.04.2020    source источник
comment
Я хочу знать, как реализует исходный код hotspotVM , я думаю, что threadB destroy что-то делает.   -  person startjava    schedule 21.04.2020
comment
Как указывает один из дубликатов, когда поток умирает, вызывается его метод this.notifyAll(). Это задокументировано _ 2_. Если вы действительно заинтересованы в просмотре исходного кода, вы можете просмотреть онлайн-репозиторий. Я не могу быть более конкретным, поскольку точно не знаю, где это реализовано.   -  person Slaw    schedule 21.04.2020