Java多线程有2种方式,继承Thread类和实现Runnable接口2种。下面将以代码说明:
package com.mainpac;
public class Main {
public static void main(String args[]){
//继承类线程
MyThread1 t1= new MyThread1();
t1.start(); //这里不能直接调用run方法,否则就无法产生线程,run方法将被视为普通方法
//实现接口线程
Thread t2= new Thread(new MyThread2());
t2.start();
System.out.println("主线程执行完毕");
}
}
class MyThread1 extends Thread{
public void run(){
for (int i=0;i<10;i++){
System.out.println("Mythread1 :" + i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
class MyThread2 implements Runnable{
@Override
public void run() {
// TODO 自动生成的方法存根
for (int i=0;i<10;i++){
System.out.println("Mythread2 :" + i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
实际使用过程中,推荐使用接口方式。原因主要是考虑到Java只能单继承,而接口是可以多实现。
假如一个类已经继承到了其他类,这个时候需要增加有线程功能,那么就无法使用继承类的方式了,
而接口方式却可以做到。