1 /** 2 * If this thread was constructed using a separate 3 *Runnable
run object, then that 4 *Runnable
object'srun
method is called; 5 * otherwise, this method does nothing and returns. 6 *7 * Subclasses of
Thread
should override this method. 8 * 9 * @see #start()10 * @see #stop()11 * @see #Thread(ThreadGroup, Runnable, String)12 */13 @Override14 public void run() {15 if (target != null) {16 target.run();17 }18 }
1.run方法本身就是thread的一种方法,本身不作任何操作。
2.当传入target时,则调用target的run方法,target是runnable对象。
3.当没有传入target,则需要重写Thread的run方法实现业务。
4.当执行thread的run方法,并不会创建新的子线程,而是调用main主线程。即当run中执行完成后才能运行下面的代码。
严谨的来说:创建线程只有一种方式就是构造Thread类,实现线程的执行单元run有两种方式,一是重写thread的run方法,二是构造thread时传入Runnable对象,实现Runnable的run方法。