一.繼承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();
}
}