
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 サイトの他の関連記事を参照してください。