Java主執行緒和其餘執行緒的區別和實踐(Main、Runnable、Thread)
阿新 • • 發佈:2018-12-28
在日常的開發中,很多一些開發中較常見的問題,還是需要去仔細研究一下,最重要的還是實踐。以小見大。
一、Java執行緒中。Main、Runnable和Thread。
相信在工作中,只要是有用到多執行緒非同步程式設計,最起碼都要和這三個打交道。
1、每個Java應用程式都有一個執行Main()函式的預設主執行緒。這個就是主執行緒
2、應用程式也可以建立執行緒在後臺執行。Java主要是通過Java.Lang.Thread類以及Java.lang.Runnable介面來實現執行緒機制的。這邊所有的都是其餘執行緒
本貼主要是從實踐角度來實踐一下多種不同的寫法。
以小處來窺見大的知識點。
二、下面來看一個Runnable介面的使用方法
注意這是一個介面
package com.newframe.controllers.api; public class TestRunnable { public static void main(String[] args) { /** * 在Java8之前,這是唯一一種建立Runnable的方式 */ Runnable r1 = new Runnable() { @Override public void run() { System.out.println("這是Java8以前的建立runnable的方式"); } }; /** * 在Java8引入了lambda表示式後的方式 */ Runnable r2 = () -> System.out.println("這是Java8引入了lambda表示式後建立的runnable的方式"); /** * 在這邊,你這樣呼叫.run()即可執行,當然,我們一搬不這樣做。 */ r1.run(); r2.run(); /** * 我們一搬都是將Runnable物件傳遞到Thread類接收Runnable作為引數的建構函式中 * 然後啟動該執行緒 */ //下面這個執行緒就是 Thread t1 = new Thread(r1); t1.start(); } }
三、關於Thread類的使用
步驟一、
package com.newframe.controllers.api; /** * 建立一個MyThread類來繼承Thread類 */ public class MyThread extends Thread{ //在使用這個MyThread實現類的時候,首先要先重寫他的run方法,讓他去做你要求的事 @Override public void run() { //例如 System.out.println("請去給我找個靠譜的工作"); //下面這一句可以不要 // super.run(); } }
步驟二、
package com.newframe.controllers.api;
public class TestMyThread {
public static void main(String[] args) {
//建立MyThread類物件
MyThread myThread = new MyThread();
//呼叫重寫過的run方法
//輸出:請去給我找個靠譜的工作
myThread.run();
}
}
上面是兩個最簡單的多執行緒的實踐。
希望能拋磚引玉。