继承Thread类,重写run
package ping;
public class ThTest {
public static void main(String[] args) {
// 启动线程
new MyThread().start();
for (int i = 0; i < 1000; i++) {
System.out.println("主线程-->" + " " + i);
}
}
}
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("分支线程-->" + " " + i);
}
}
}
实现Runnable接口、其中的run方法
package ping;
public class ThTest {
public static void main(String[] args) {
// 启动线程
new Thread((new MyRunnable()).strat();
for (int i = 0; i < 1000; i++) {
System.out.println("主线程-->" + " " + i);
}
}
}
class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("分支线程-->" + " " + i);
}
}
}
用匿名内部类优化
package ping;
public class ThTest {
public static void main(String[] args) {
// 启动线程
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println("分支线程-->" + " " + i);
}
}
}).start();
for (int i = 0; i < 1000; i++) {
System.out.println("主线程-->" + " " + i);
}
}
}
实际上,Thread 是 Runnable 的实现类,实现其中run方法
相对于实现Runnable,继承Thread这一做法,占用了我们的继承位,扩展性较差