(1) 继承Thread类,重写其中的run()方法,创建子类实例,用start()方法开启新线程
继承Thread类,重写run()方法:
public class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("新线程->" + i);
}
}
}
创建实例,用start()方法开启新线程:
public static void main(String[] args) {
MyThread mt = new MyThread();
mt.start();
for (int i = 0; i < 5; i++) {
System.out.println("mian->" + i);
}
}
执行结果如下:
mian->0
新线程->0
mian->1
新线程->1
mian->2
新线程->2
mian->3
新线程->3
mian->4
新线程->4
(2) 实现Runnable接口,重写run()方法,创建Thread实例,传递Runnable接口实现类的实例【推荐此方法】
实现Runnable类,重写其中的run()方法
public class RunnableImpl implements Runnable {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("新线程->" + i);
}
}
}
创建Thread对象,传递Runnable接口实现类的实例,用start()方法开启新线程
public static void main(String[] args) {
Thread t = new Thread(new RunnableImpl());
t.start();
for (int i = 0; i < 5; i++) {
System.out.println("主线程->" + i);
}
}
执行结果如下:
主线程->0
新线程->0
主线程->1
新线程->1
主线程->2
新线程->2
主线程->3
新线程->3
新线程->4
主线程->4