一.继承Thread类
在写Thread子类时,需要重写父类的run()方法,如下:
package com.lei.java;
public class MyThread extends Thread {
public MyThread() {
}
//设置线程的名称setName();
public MyThread(String name){
super(name);
}
@Override
public void run() {
for(int i=0;i<100;i++){
//获取线程的名称getName()
System.out.println(getName()+"--"+i);
}
}
}
主类:
package com.method.java;
import com.lei.java.MyThread;
public class MyThreadDemo {
public static void main(String[] args) {
MyThread my1=new MyThread("第一个");
MyThread my2=new MyThread("第二个");
//设置线程的名称setName();
//my1.setName("第一个");
//my2.setName("第二个");
my1.start();
my2.start();
}
}
二.实现Runnable接口
用Thread类直接创建线程对象,使用Thread创建线程通常使用的构造方法是:Thread(Runnable target),该构造方法的参数是一个Runnable类型的接口。
在创建线程对象时必须向构造方法的参数传递一个实现Runnable接口类的实例。如下:
package com.runnable;
public class RunnableDemo implements Runnable {
@Override
public void run() {
for(int i=0;i<=100;i++){
System.out.println(i);
}
}
}
主类:
package com.runnable;
public class MyRunnable {
public static void main(String[] args) {
//Runnable接口类
RunnableDemo runnableDemo =new RunnableDemo();
//Thread(Runnable target)构造方法的参数是一个Runnable类型的接口
Thread t1 = new Thread(runnableDemo);
Thread t2 = new Thread(runnableDemo);
t1.start();
t2.start();
}
}