マルチスレッドを作成する 2 つの方法

マルチスレッドを実装する 2 つの方法:

1. Threadクラスを継承する

public class MyThread extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if(i%2==0){
                System.out.println("子线程-------------->"+i);
            }
        }
    }
}

まず、Thread クラスを継承するクラスを定義し、run メソッドをオーバーライドします。

public class Test {
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.start();

        for (int i = 0; i < 100; i++) {
            if(i%2==0){
                System.out.println("主线程---------->"+i);
            }
        }
    }
}

テスト クラスでオブジェクトを作成し、start メソッドを呼び出し、メイン スレッドでプログラムを作成し、プログラムを実行して結果を確認してみましょう。

 2つのプログラムの出力結果は交互に出力されており、マクロレベルで2つのプログラムが並行していることが分かる。

2. Runnableインターフェイスを実装する

public class RunThread implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if(i%2!=0){
                System.out.println("子线程----------->"+ i);
            }
        }
    }
}

まず、Runnable メソッドを実装し、run メソッドをオーバーライドするクラスを作成します。

public class Test {
    public static void main(String[] args) {
        Thread thread = new Thread(new RunThread());

        thread.start();

        for (int i = 0; i < 100; i++) {
            if(i%2!=0){
                System.out.println("主线程--------->"+i);
            }
        }
    }
}

テスト クラスで Thread オブジェクトを作成し、start メソッドを呼び出すと、実行結果は次のようになります。

 プログラムも同時に実行されており、Threadクラスを継承したのと同じ効果が得られることがわかります。

 複雑なスレッド操作要件がある場合は Thread の継承を選択し、単にタスクを実行するだけの場合は runnable を実装します。

おすすめ

転載: blog.csdn.net/weixin_65379795/article/details/130058981