Javaマルチスレッド


なんでマルチスレッド使う

例えば、複数なユーザーがバイクレースゲームするとし、みんながそれぞれログインして、見てる画面が同じとか、ウィブで記事を見ながら音楽も聴けます、トイレしながらスマホをいじったりとか。こいうような複数な処理を行うのがマルチスレッドの役割です。

ご存知のように、javaのプロジェクト一つにあたり、メインメソッドが一つしかない、じゃ上記の場合には複数のメインメソッドが必要になりますね。

↑を解決するために、マルチスレッドを使います。

マルチスレッド作成種類

作成するのに以下の三種類があります。

thread(重要)

以下三つのステップでスレッド作れます。
①Threadクラスを継承する
②runメソッドをオーバーライドする
③startでスレッド開始する

Threadクラスドキュメント

ThreadTest.java
package com.maekawa.base;

//Threadクラスを継承する
public class ThreadTest extends Thread{
   // runメソッドをオーバーライドする
    @Override
    public void run() {
        for (int i = 0; i <100 ; i++) {
            System.out.println("処理事項その二");
        }
    }

    public static void main(String[] args) {
        // startでスレッド開始する
        ThreadTest threadTest = new ThreadTest();
        threadTest.start();

        for (int i = 0; i < 100; i++) {
            System.out.println("処理事項その一");
        }

    }
}

runnable(重要)

Threadクラスにすでに実装されたインターフェースrunnableを使う。
①Threadクラスを継承する
②runメソッドをオーバーライドする
③startでスレッド開始する

RunnableTest.java
package com.maekawa.base;
/*
マルチスレッド作成方法
①Threadクラスを継承する
②runメソッドをオーバーライドする
③startでスレッド開始する
 */
public class RunnableTest implements java.lang.Runnable {
    @Override
    public void run() {
        for (int i = 0; i <100 ; i++) {
            System.out.println("処理事項その二");
        }
    }

    public static void main(String[] args) {

        RunnableTest runnableTest = new RunnableTest();
        //書き方1
        //Thread thread = new Thread(runnableTest);
        //thread.start();
        //書き方2
        new Thread(runnableTest).start();

        for (int i = 0; i < 100; i++) {
            System.out.println("処理事項その一");
        }

    }
}

callable(理解程度)

公式ドキュメント

この記事のコードが分かりやすい。

ラムダ(Lambda)式

参考記事↓