1、继承Thread类实现多线程
public class MyThread extends Thread{
public void run(){
System.out.println("线程启动");
try {
Thread.sleep(1000);//模拟耗时工作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程关闭");
}
}
线程启动方式如下(注意,启动线程的方法是start()而不是run(),详情见此):
public static void main(String[] args) {
new MyThread().start();
new MyThread().start();
}
由于Java中的类只能继承一个父类,该方式的做法有很大局限性,在实际编程中也很少采用。
2、用过Runnable接口实现多线程
public class MyThread implements Runnable{
@Override
public void run() {
System.out.println("线程启动");
try {
Thread.sleep(1000);//模拟耗时工作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程关闭");
}
}
启动方式如下:
public static void main(String[] args) {
Thread t1 = new Thread(new MyThread());
Thread t2 = new Thread(new MyThread());
t1.start();
t2.start();
}
当然,这种方式还可以将线程的实现与调用放到一个类中:
public class MyThread implements Runnable{
public void test(){
Thread t1 = new Thread(this);
Thread t2 = new Thread(this);
t1.start();
t2.start();
}
@Override
public void run() {
System.out.println("线程启动");
try {
Thread.sleep(1000);//模拟耗时工作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程关闭");
}
}