ホームページ  >  記事  >  Java  >  マルチスレッド - スレッドの作成

マルチスレッド - スレッドの作成

王林
王林転載
2019-08-22 16:04:272626ブラウズ

スレッドの作成方法

マルチスレッドの作成方法をまとめます。マルチスレッドを実現するには4つの方法があります。次に、作成方法を詳しく説明します

1. Thread クラスを継承し、run() メソッドをオーバーライドします

2. Runnable インターフェイスを実装し、run() メソッドをオーバーライドします

3. 実装します呼び出し可能なインターフェイスをオーバーライドし、calldaed541be57f7e1197efbbe903a12eecMethod

4. スレッド プール (より複雑なため、後で説明します)

注: どのメソッドが使用されるかは関係ありません。スレッドを作成するには、Thread クラスによって提供される start を使用してスレッドを開始します。() メソッド。

1. Thread クラスを継承し、run メソッドをオーバーライドします。

class MyThread extends Thread {
    private String title;
    private int ticket = 20;
 
    public MyThread(String title) {
        this.title = title;
    }
 
    public void run() {  //放每个线程的子任务
        while (ticket > 0) {
            System.out.println("当前线程为"+title+",还剩下"+ticket--+"票");
        }
    }
}
 
public class ThreadTest {
    public static void main(String[] args) {
        MyThread myThread1 = new MyThread("黄牛A");
        MyThread myThread2 = new MyThread("黄牛B");
        MyThread myThread3 = new MyThread("黄牛C");
        myThread1.start();
        myThread2.start();
        myThread3.start();
    }
}

2. Runnable インターフェイスを実装し、オーバーライドします。 run メソッド

class MyRunnable implements Runnable{
    @Override
    public void run() {
      for(int i =0;i <10;i++){
          System.out.println(Thread.currentThread().getName()+"、i="+i);
      }
    }
}
public class RunnableTest {
    public static void main(String[] args) {
       Runnable runnable =new MyRunnable();      //向上转型
        new Thread(runnable,"线程A").start();    //设置线程名字
        new Thread(runnable).start();     //没有设置线程名字,则是系统默认从 Thread-(0,1,2...)
        Thread thread1 = new Thread(runnable);
        thread1.setName("线程B");        //调用setName()设置名字
        thread1.start();
    }
}

スレッド名を作成する 3 つの方法は次のとおりです:

(1) 括弧の直後に名前を追加します

(2) setName を呼び出します() 名前を設定します

(3) 名前が設定されていない場合、システムはデフォルトで Thread-(0,1,2....)


## を使用します。

## 3. Callable インターフェイスを実装し、calld94943c0b4933ad8cac500132f64757f メソッドをオーバーライドします

class MyCallable implements Callable<String>{
    private int ticket =20;
    @Override
    public String call() throws Exception {
        while(ticket > 0){
            System.out.println(Thread.currentThread().getName()+"还剩下"+ticket--+"票");
        }
        return "票卖完了,再见";
    }
}
public class CallableTest {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //产生Callable对象
        MyCallable myCallable = new MyCallable();
        //产生FutureTask对象
        FutureTask futureTask = new FutureTask(myCallable);
        Thread thread = new Thread(futureTask);
        thread.start();
        System.out.println(futureTask.get()); //接收Callable对象的返回值
    }
}
1. まず Callable オブジェクトを生成します

2. FutureTask オブジェクトを生成します

3. スレッド パスを作成する FutureTask オブジェクトを入力します

#4. Callable インターフェイスから受け取った戻り値は、Future の get() メソッドです

3 つの比較スレッドを作成する方法

1 .Thread クラスの継承には、単一継承の制限があります。比較的言えば、Runnable インターフェイスを実装する方がより柔軟であり、Thread クラス自体も Runnable インターフェイスを実装して、リアル スレッド クラス

2. Runnable インターフェイスを実装すると、プログラム共有をより適切に実現できます。コンセプト

3. Callable インターフェイスは、戻り値が必要な場合に使用されます

明らかな場合は、上記内容に誤りがありましたら、ご指摘いただければ幸いです。ありがとう!

その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください:

JAVA ビデオ チュートリアル

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

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。