为什么我们调用线程对象的start()方法又轮流调用run()方法,为什么不直接调用run()方法呢?
或者是吗?
我有一个线程对象来自:
Thread myThread = new Thread(pObject);
Run Code Online (Sandbox Code Playgroud)
其中pObject是实现Runnable接口的类的对象,然后我在线程对象上调用start方法,如下所示:
myThread.start();
Run Code Online (Sandbox Code Playgroud)
现在,我的理解是,当调用start()时,JVM隐式(并立即)调用run()方法,该方法可能被覆盖(就像我的情况一样)
但是,在我的情况下,似乎没有立即调用start()方法(根据需要),但直到从调用块完成其他语句/方法,即如果我在start()调用之后有一个方法,如下所示:
myThread.start();
doSomethingElse();
Run Code Online (Sandbox Code Playgroud)
doSomthingElse()在run()方法运行之前执行.
也许我错误的初始前提是run()总是在调用start()之后调用.请帮忙!再次想要的是在start()之后立即执行run().谢谢.