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

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

(*-*)浩
(*-*)浩オリジナル
2019-12-04 09:16:226071ブラウズ

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

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

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

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

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

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

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

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

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 は偶数です。より人気があります。具体的なコードは次のとおりです:

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 によるスレッドの実装

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

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 までご連絡ください。