下面的三个例子使用了不同的方式完成了同样的事情。 实现Runnnable的方式: void startAThread0() { new Thread(new MyRunnable()).start(); } class MyRunnable implements Runnable { public void run() { ... } }
继承Thread的方式: void startAThread1() { new MyThread().start(); } class MyThread extends Thread { public void run() { ... } }
匿名继承Thread的方式: void startAThread2() { new Thread() { public void run() { ... } }.start(); }
不要直接调用run()方法。总是调用Thread.start()方法,这个方法会创建一条新的线程并使新建的线程调用run()。