Я пытаюсь создать дочерний поток в основном потоке, как показано ниже,
public class test {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("In normal child thread " + Thread.currentThread().getName());
}
});
t1.start();
System.out.println("main thread sleeping for 5 seconds : " + Thread.currentThread().getName());
Thread.sleep(5000);
System.out.println("In main thread : " + Thread.currentThread().getName());
System.out.println("exiting main thread : " + Thread.currentThread().getName());
}
}
В приведенном выше примере я отключил основной поток на 5 секунд. Итак, как только дочерний поток завершит печать своего оператора sysout, я ожидаю, что следующие строки будут выполнены дважды,
System.out.println("In main thread : " + Thread.currentThread().getName());
System.out.println("exiting main thread : " + Thread.currentThread().getName());
Но когда я выполняю программу, я вижу только один раз, когда эти строки выполнен.
Пожалуйста, дайте мне знать, правильно ли мои ожидания? . Я ожидаю, что основной поток должен выполнить эти операторы sysout дважды.