Java主線程和其餘線程的區別和實踐(Main、Runnable、Thread)

在日常的開發中,很多一些開發中較常見的問題,還是需要去仔細研究一下,最重要的還是實踐。以小見大。

一、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();
    }
}

上面是兩個最簡單的多線程的實踐。
希望能拋磚引玉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章