2019獨角獸企業重金招聘Python工程師標準>>>
package com.javaxxz.test;public class Demo extends Thread {/*** 創建線程的方式* 方式一:* 1、自定義一個類繼承Thread類* 2、重寫Thread類的run方法,把自定線程的任務代碼寫在run方法中* 3、創建Thread類的子類對象,并且調用start方法開啟線程* 一個線程一旦開啟,那么線程就會執行run方法中的代碼** 疑問:重寫run方法的目的是什么?* 解答:每個線程都有自己的任務代碼,jvm創建的主線程的任務代碼就是Main方法中的所有代碼。* 自定義線程的任務代碼就寫在run方法中,自定義線程負責了run方法中的代碼。*/@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("自定義線程執行" + i);}}public static void main(String[] args) {// 創建了自定義線程的對象Demo demo = new Demo();// 調用start方法啟動線程demo.start();for (int i = 0; i < 100; i++) {System.out.println("Main線程執行" + i);}}
}
package com.javaxxz.test;public class Demo1 implements Runnable {/*** 創建線程的方式* 方式二:* 1、自定義一個類實現Runnable接口* 2、實現Runnable接口的run方法,把自定線程的任務代碼寫在run方法中* 3、創建Runnable接口實現類的對象* 4、創建Thread類的對象,并且把Runnable實現類的對象作為實參傳遞* 5、調用Thread對象的start方法開啟一個線程*/@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println(Thread.currentThread().getName() + "執行:" + i);}}public static void main(String[] args) {Demo1 demo1 = new Demo1();Thread thread = new Thread(demo1,"自定義線程名稱");thread.start();for (int i = 0; i < 100; i++) {System.out.println("Main線程執行:" + i);}}
}
?