各位小夥伴們大家好,好久不見,在之前的文章中,小編介紹了創建線程的兩種方式Java之創建多線程的第二種方法,實現類,Java之創建多線程的第一種方式,thread類。這次小編要講的是這兩種方式的區別。其實就是實現Runnable接口創建多線程的好處,具體如下:
避免了單繼承的局限性,一個類只能繼承一個類,這個類繼承了Thread類就不能繼承其它類。但是,實現了Runnable接口,還可以繼承其它的類,實現其它接口。增強了程序的擴展性,降低了程序的耦合性,實現Runnable接口的方式,把設置線程任務和開啟新線程進行了分離。
實現類中,重寫了run方法:用來設置線程任務。然後創建Thread類對象,調用start方法開啟新的線程。
代碼如下:
創建一個Runnable接口的實現類
public class RunnableImp2implements Runnable{
public void run(){
for(int i=0;i<7;i++){
System.out.println("期末免掛"+i);
}
}
}
創建一個Runnable接口的實現類
public class RunnableImp1 implements Runnable{
public void run(){
for(int i=0;i<7;i++){
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
main方法
public class Demo01Runnable {
public static void main(String[] args) {
//3.創建一個Runnable接口的實現類對象
RunnableImp1 run=new RunnableImp1();
//4.創建Thread類對象,構造方法中傳遞Runnable接口中的實現類對象
Thread t=new Thread(new RunnableImp2());
Thread m=new Thread(run);
//5.調用Thread類對象中的start方法,開啟新的線程執行run方法
t.start();
m.start();
for(int i=0;i<9;i++){
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
關於Thread和Runnable接口的區別,主要是使用Runnable接口的好處,可以繼承其他類,實現多個接口,增強了程序的擴展性,降低了程序的耦合性。大家根據代碼自行理解,小編就不多說了,希望這篇文章可以幫到大家,也歡迎各位小夥伴補充和糾錯。