第一種方式,定義Thread類別的子類別:
//第一种方法 public class MyThread extends Thread { @Override public void run() { String name = getName(); // 获取线程名称 System.out.println(name); // 输出 Thread-0 } }
//第二种方法 public class MyThread extends Thread { @Override public void run() { Thread t = Thread.currentThread(); // 获取当前线程 System.out.println(t); // 下面调用后输出 Thread[Thread-0,5,main] System.out.println(t.getName());// 输出 Thread-0 } }
java相關影片推薦:java線上學習
開啟多執行緒:
public class demo1Test { public static void main(String[] args) { MyThread mt = new MyThread(); mt.start();// 会运行MyThread的run()方法 } }
第二種方式,實作Runnable介面:
實作步驟:
1.建立一個Runnable 介面的實作類別
2.在實作類別中重寫Runnable介面的run方法,設定執行緒任務
3.建立一個Runnable介面的實作類別物件
4.建立Thread類別對象,建構方法中傳遞Runnable介面的實作類別物件
##5.呼叫Thread類別中的start方法,開啟新的執行緒執行run方法public class Runnableimpl implements Runnable {//1.创建一个Runnable 接口的实现类 @Override public void run() { for (int i = 1; i <= 20; i++) {// 2.在实现类中重写Runnable接口的run方法,设置线程任务 System.out.println(Thread.currentThread().getName() + i); } } }
public class demo2Test { public static void main(String[] args) { Runnable run = new Runnableimpl();//3.创建一个Runnable接口的实现类对象 Thread t = new Thread(run); //4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象 t.start();//5.调用Thread类中的start方法,开启新的线程执行run方法 for (int i = 1; i <= 20; i++) { System.out.println(Thread.currentThread().getName() + i); } // Thread-0和main开始多线程抢夺cpu } }
#實作Runnable介面建立多執行緒的好處:
##1.避免了單繼承的限制:一個類別只能繼承一個類,類別繼承了Thread後就不能繼承其他的類別
實作了Runnable接口,還可以繼承其他的類,實作其他介面。
2.增強了程式的擴充性,降低了程式的耦合性實作Runnable介面的方式,把設定執行緒任務和開啟執行緒任務進行分離
實作類別中,重寫run()方法,用來設定執行緒任務。
建立Thread類別對象,呼叫start()方法,用來開啟新執行緒
sleep( )方法,讓方法睡眠以上是java中多線程的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!public class sleepTest {
public static void main(String[] args) {
for (int i = 0; i < 20; i++) {
//使用Thread类的sleep方法,让方法睡眠1秒钟
try {
Thread.sleep(1000);//传入的是毫秒值
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
}
}
}