LoginSignup
0
1

More than 1 year has passed since last update.

Javaマルチスレッド

Last updated at Posted at 2021-08-30

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

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

ご存知のように、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)式

参考記事↓

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1