java线程

131 阅读1分钟

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方法。那么就不是上面源码里的逻辑了。
  • 否则我们构建出来的线程会跑我们传进去的任务