ホームページ > Java > &#&チュートリアル > Javaでマルチスレッドを実装する方法

Javaでマルチスレッドを実装する方法

(*-*)浩
リリース: 2019-12-04 09:16:22
オリジナル
6181 人が閲覧しました

Javaでマルチスレッドを実装する方法

Java マルチスレッドは Java の高度な機能の 1 つです。マルチスレッドを通じて、マルチタスクと共同作業を同時に実現できるため、パフォーマンスを向上させることができます。特定の状況下ではプログラムの効率が向上しますが、Java マルチスレッドの使用には注意が必要です。 (推奨学習: Java コース )

## ここが最初のポイントですが、Java マルチスレッドを使用するには高度なコーディング スキルが必要であり、適切に使用しないとプログラム エラーが発生します。スレッド間の悪意のある競合によりデッドロックが発生し、プログラムがフリーズします。

第二に、マルチスレッドの乱用により、一部の主要なパラメータが乱される可能性があり、この場合、スレッド間の同期とロック管理を適切に行う必要があります。

3 番目に、スレッド切り替えには追加のコストがかかり、これは「コンテキスト切り替え」と呼ばれることが多く、不適切に使用すると、効率が向上しないだけでなく、効率の急激な低下を引き起こす可能性があります。

Java でマルチスレッドを実装する方法

スレッドを継承してマルチスレッドを実装する

Java はスーパー クラスを提供しますLet's extendのスレッドです。継承すると、runメソッドをオーバーライドすることでマルチスレッドを実装できます。具体的なコードは次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.dingtao.test;

import java.io.*;

  

public class MyThread extends Thread{

    @Override

    public void run() {

        System.out.println(Thread.currentThread().getName());

    }

  

    public static void main(String[] args) throws IOException {

        Thread t1 = new MyThread();

        Thread t2 = new MyThread();

        t1.start();

        t2.start();

    }

}

ログイン後にコピー

#Runnableインターフェースを実装することで実現します

一部のクラスでは、Thread を継承してマルチスレッドを実装することができません。Java では、同時に継承できるスーパークラスは 1 つだけであると規定されていますが、複数のインターフェイスを同時に実装できるため、Runnable は偶数です。より人気があります。具体的なコードは次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.dingtao.test;

import java.io.*;

  

public class MyThread implements Runnable{

    @Override

    public void run() {

        System.out.println(Thread.currentThread().getName());

    }

  

    public static void main(String[] args) throws IOException {

        Thread t1 = new Thread(new MyThread());

        Thread t2 = new Thread(new MyThread());

        t1.start();

        t2.start();

    }

}

ログイン後にコピー

Callable によるスレッドの実装

具体的なコードは次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.dingtao.test;

import java.util.concurrent.Callable;

import java.util.concurrent.FutureTask;

  

public class MyThread implements Callable<Integer>{

    public static void main(String[] args){

        MyThread t1 = new MyThread();

        FutureTask<Integer> future = new FutureTask<Integer>(t1);

        new Thread(future,"呵呵哒").start();

    }

    @Override

    public Integer call() throws Exception {

        System.out.println(Thread.currentThread().getName());

        return null;

    }

}

ログイン後にコピー

以上がJavaでマルチスレッドを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート