表情包警告。如何使用多線程上廁所

如何使用多線程上廁所。表情包警告

在上一篇文章中,我們和以上廁所爲例子,優(e)雅(xin)的解釋了什麼是進程、線程、多線程以及爲什麼使用多線程。傳送門 那麼這一篇文章我們就來實際的看下如何使用多線程’拉shit’。

表情包警告!!!
在這裏插入圖片描述

創建線程的方式

  • 1、實現Runnable
  • 2、繼承Thread

有的小夥伴就要說了。爲什麼有兩種方式呢?這個我們用一個通俗而又優雅的方式來說。

上廁所(大)有幾種方式呢?

  • 1、蹲着
    在這裏插入圖片描述

  • 2、坐着
    在這裏插入圖片描述

  • 3、站着

對吧,以上兩種方式都能夠解決我們的需求。
在這裏插入圖片描述

但是呢。

兩種方法沒有說是誰更舒服。

只是看個人習慣和場景來決定不同的方式而已,對吧。
在這裏插入圖片描述

一個人再怎麼強也不可能在蹲廁坐着大便是吧。

當然,如果你可以,很好,是在下輸了。🙏
在這裏插入圖片描述

ok,我們接着回來。我們下面就先分別來看下。兩種方式是如何創建線程的。

由於本篇文章右邊比較多的代碼解析。所以我們接下來進入正常模式。

在這裏插入圖片描述
表情包模式:off
正常模式:on
大哥你看看你的標題,還表情包模式:off是不是不想活了。你不知道很多人都是來看圖的嗎?沒人看你的文章啦。
在這裏插入圖片描述
表情包模式:on

1、Runnable 創建線程

在創建線程之前,我們首先來看一下Runnable類。

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

我們可以看到Runnable類是一個接口,並且這個接口只有一個方法run

那麼我們使用Runnable方法創建線程的方法就知道了

在這裏插入圖片描述
實現Runnable接口 -> 實現run方法

下面來看下具體代碼


// **注意** **注意** 實際的項目中最好不要使用中文拼音和英語所結合的命名,否則會出人命
// **注意** **注意** 實際的項目中最好不要使用中文拼音和英語所結合的命名,否則會出人命
// **注意** **注意** 實際的項目中最好不要使用中文拼音和英語所結合的命名,否則會出人命
// 實現Runnable類
public class LaShit implements Runnable {

    // 實現run方法,並且在run方法裏面寫上線程執行的操作
    public void run() {
        System.out.println("我 la shit 了");
    }
}

經過上面的代碼,我們的線程執行的內容就寫好了。

但是隻是定義好了執行的內容是沒有作用的
在這裏插入圖片描述

我們需要讓線程執行。讓線程跑起來
在這裏插入圖片描述

在這裏插入圖片描述

這是我們需要Thread類來執行線程了。

關於Thread類是什麼。我們目前只需要知道Thread是線程操作類,主管線程啓動、休眠、等等等操作。隨着後面的學習,我會慢慢的介紹。
在這裏插入圖片描述

下面我們看下代碼。


    public static void main(String[] args) {
        // 創建線程實例
        LaShit laShit = new LaShit();
        // 創建Thread線程操作類,並且放入線程
        Thread thread = new Thread(laShit);
        // 開啓線程  
        thread.start();
    }

以上就是使用Runnable創建、啓動線程的方法。

這裏有的小夥伴就要問了。

在這裏插入圖片描述

“布丁、布丁,這樣是不是太麻煩了。每次都要創建Thread類。有沒有更簡單的方法呢?”

還真的的有。。
在這裏插入圖片描述

下面我們看下創建線程的第二種方法。

2、繼承Thread

Thread類是什麼,我們上面已經說了。廢話不多說,直接看代碼

在這裏插入圖片描述

// 繼承Thread類
public class LaShit extends Thread {
    // 重寫run方法,並且在run方法中寫線程執行邏輯
    @Override
    public void run() {
        System.out.println("我 La shit 了");
    }
}

之前有小夥伴說使用Runnable的時候需要創建Thread然後下可以啓動線程,那麼我們現在繼承了Thread類之後,是不是可以直接啓動線程了呢?

小腦袋瓜真聰明。答案是可以的。

在這裏插入圖片描述

下面看代碼。

public static void main(String[] args) {
        // 創建實體
        LaShit laShit = new LaShit();// 啓動線程
        laShit.start();
    }

是不是感覺使用Thread創建啓動線程很方便啊?

但是,是有代價的。
在這裏插入圖片描述

  • 1、因爲使用Thread是需要繼承的,那麼我們就無法再繼承其他的類了。但是使用方便
  • 2、而我們實現Runnable接口的同時,也可以繼承或者實現其他類。但是使用麻煩。

在這裏插入圖片描述

兩種方法各自適用於不用的場景。所以如何使用兩種方式是要看具體的環境的。
在這裏插入圖片描述

以上就是本篇文章的所有內容了,如果有那裏不正確的歡迎小夥伴們留言告訴我。謝謝!!

祝天下程序員,頭髮多多、需求少少、工資多多、顏值高高。

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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