通过继承Thread创建线程
public class MyThread extends Thread{
public MyThread(){super();}
public MyThread(String s){super(s);}
public void run(){
for(int i=0;i<10;i++){
System.out.println(getName());
try{
sleep(1000);
}catch(InterruptedException e){}
}
}
public static void main(String[] args){
new MyThread("线程1").start();
new MyThread("线程2").start();
}
}
程序运行结果:
线程1
线程2
线程1
线程2
线程1
线程2
线程2
线程1
线程1
线程2
线程2
线程1
线程2
线程1
线程1
线程2
线程2
线程1
线程2
线程1
通过接口创建线程(由于java语言只支持类的单一继承,若类A已经从其他类中继承,则无法从Thread中继承;但java支持一个类实现多个接口,且一个接口继承多个接口!)
java语言提供Runnable接口用于解决接口问题
public interface Runnable{
public void run();
}
public class MyThread implements Runnable{
public MyThread(){super();}
public void run(){
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName());
try{
Thread.currentThread().sleep(1000);
}catch(InterruptedException e){}
}
}
public static void main(String[] args){
Thread t1 = new Thread(new MyThread(),"线程1");
Thread t2 = new Thread(new MyThread(),"线程2");
t1.start();
t2.start();
}
}
程序运行结果如下:
线程1
线程2
线程1
线程2
线程1
线程2
线程2
线程1
线程1
线程2
线程2
线程1
线程1
线程2
线程2
线程1
线程2
线程1
线程1
线程2