Почему java.lang .Thread не вызывает метод run () своего явного java.lang.Runnable при запуске?

В документах Java указано, что если мы предоставили Runnable target при создании нового потока, .start ( ) этого потока будет запускать метод run () предоставленного runnable.

Если это так, не должен ли этот тестовый код печатать «a» (вместо «b»)?

public class test {
    public static void main(String[] args) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println("a");
            }
        };
        Thread t = new Thread(r) {
            @Override
            public void run() {
                System.out.println("b");
            }
        };
        t.start();
    }
}

6
задан user802421 23 December 2011 в 18:14
поделиться