1. 继承 Thread 类
package main.thread;
public class Machine extends Thread{
public void run(){
for(int a=0; a<10; a++){
System.out.println(currentThread().getName()+":"+a);
try{
sleep(100); //给其他线程运行的机会,这样machine1与machine2线程属于分时调度模式
}catch(InterruptedException e){
throw new RuntimeException(e);
}
}
}
public static void main(String[] args){
System.out.println(currentThread().getName()); //该主线程
Machine machine1 = new Machine();
Machine machine2 = new Machine();
machine1.start(); //启动第一个Machine线程
machine2.start(); //启动第二个Machine线程
}
}
2. 实现 Runable 接口
Java 不允许一个类继承多个类,因此一旦一个类继承了 Thread 类,就不能再继承其他的类。为了解决这一问题, Java 提供了 java.lang.Runnale 接口,它有一个 run() 方法 ,定义如下:
public void run();
package main.thread;
public class Machine implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
for(int a=0; a<10; a++){
System.out.println(Thread.currentThread().getName()+":"+a);
try{
Thread.sleep(100);
}catch(InterruptedException e){
throw new RuntimeException(e);
}
}
}
public static void main(String[] args){
Machine machine = new Machine();
Thread t1 = new Thread(machine);
Thread t2 = new Thread(machine);
t1.start();
t2.start();
}
}
注: 在 Thread 类中定义了如下形式的构造方法:
Thread(Runnable runnable) // 当线程启动时,讲执行参数 runnable 所引用对象的 run() 方法