Runnable和Thread
听一个大神说过,线程其实就是个容器。里面跑着任务
new Thread(Runnable target)这就是构建了一个线程容器。里面的target就是任务。- Runnable和Callable我理解都是任务。 需要构建一个容器来跑该任务
- 那么我直接继承
Thread重写run方法这算什么呢?这种情况我理解为:这个线程里面的任务我们提前就构建好了。
/**
* If this thread was constructed using a separate
* <code>Runnable</code> run object, then that
* <code>Runnable</code> object's <code>run</code> method is called;
* otherwise, this method does nothing and returns.
* <p>
* Subclasses of <code>Thread</code> should override this method.
*
* @see #start()
* @see #stop()
* @see #Thread(ThreadGroup, Runnable, String)
*/
@Override
public void run() {
if (target != null) {
target.run();
}
}
- 我们如果直接继承Thread重写run方法。那么就不是上面源码里的逻辑了。
- 否则我们构建出来的线程会跑我们传进去的任务