package com.atguigu.java1;
/*
- 創建多線程的方式二:通過實現的方式
- 對比一下繼承的方式和實現的方式:
- 1.聯系:public class Thread implements Runnable
- 2.哪個方式好?實現的方式優于繼承的方式
why? ①避免的java單繼承的局限性
②如果多個線程要操作同一份資源(或數據),更適合使用實現的方式
*/
//1.創建一個實現Runnable接口類
class PrintNum1 implements Runnable{
//2.實現接口的抽象方法
public void run(){
for(int i = 1; i<= 100; i++){
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName() +
Thread.currentThread().getPriority() +":" + i);
}
}
}
}
public class TestThread4 {
public static void main(String[] args) {
//3.創建一個Runnable接口實現類的對象
PrintNum1 p1 = new PrintNum1();
//p1.start();start是thread類的接口,報錯
//p1.run();這是調用run方法了,并不是多線程
//要想啟動一個多線程,必須調用start()
//4.將此對象做為形參傳遞給Thread類的構造器中,創建thread類的對象,此對象即為一個線程
Thread t1 = new Thread(p1);
//5.調用start()方法
t1.start();//啟動線程,執行thread對象生成時,構造器形參的對象的run()方法
Thread t2 = new Thread(p1);
t2.start();
}
}