Nie rozumiem różnicy między uruchomieniem i uruchomieniem wątku, testowałem obie metody i dają one ten sam wynik, najpierw użyłem kombinacji run() i rozpocząłem na tym samym wątku i nie taką samą funkcję, jak następuje:Różnica między uruchomieniem a uruchomieniem wątku
public class TestRunAndStart implements Runnable {
public void run() {
System.out.println("running");
}
public static void main(String[] args) {
Thread t = new Thread(new TestRunAndStart());
t.run();
t.run();
t.start();
}
}
wyjście jest:
running
running
running
potem ten javadoc sposobu uruchomienia(), że: If this thread was constructed using a separate Runnable run object, then that Runnable object's run method is called; otherwise, this method does nothing and returns
więc próbowałem użyć metody run() bez oddzielnego runnable następująco:
public class TestRun extends Thread {
public void run(){
System.out.println("Running Normal Thread");
}
public static void main(String[]args){
TestRun TR=new TestRun();
TR.run();
}
}
a także wykonuje metodę run() i wydruki Running Normal Thread
chociaż jest skonstruowany bez oddzielnego runnable! więc co jest główną różnicą pomiędzy tymi dwoma metodami
to nie duplikat! – naXa
Jednak jest już za późno. Ale może być pomocna dla innych.Odrzuć instrukcję SOP metody uruchamiania według "System.out.println ("running thread ..." + Thread.currentThread(). getName()); "a następnie wykonaj swój program, zobaczysz różnicę." Output is "running thread ... main bieżący wątek ... main bieżący wątek ... Wątek-0 " – user320676