Heim > Java > JavaBase > Hauptteil

So erstellen Sie einen Thread in Java

Freigeben: 2019-12-26 14:11:37
Original
5473 Leute haben es durchsucht

So erstellen Sie einen Thread in Java

Java verwendet die Thread-Klasse, um Threads darzustellen, und alle Thread-Objekte müssen Instanzen der Thread-Klasse oder ihrer Unterklassen sein. Java kann Threads auf drei Arten erstellen, wie folgt:

1) Erben Sie die Thread-Klasse, um einen Thread zu erstellen

2) Implementieren Sie die Runnable-Schnittstelle, um einen Thread zu erstellen

3 ) Verwenden Sie Callable und Future, um Threads zu erstellen

Schauen wir uns diese drei Methoden zum Erstellen von Threads an.

Die Schritte zum Erben der Thread-Klasse zum Erstellen eines Threads lauten wie folgt:

1]d Definieren Sie eine Unterklasse der Thread-Klasse und überschreiben Sie die run()-Methode Der Methodenkörper ist die Aufgabe, die der Thread ausführen muss. Die run()-Methode wird auch als Thread-Ausführungskörper bezeichnet.

2] Erstellen Sie eine Instanz der Thread-Unterklasse, dh erstellen Sie ein Thread-Objekt

3] Starten Sie den Thread, dh rufen Sie die start()-Methode des Threads auf

Beispiel:

public class MyThread extends Thread{//继承Thread类
  public void run(){
  //重写run方法
  }
}
public class Main {
  public static void main(String[] args){
    new MyThread().start();//创建并启动线程
  }
}
Nach dem Login kopieren

Die Schritte zum Implementieren der Runnable-Schnittstelle zum Erstellen eines Threads sind wie folgt:

1] Definieren Sie die Implementierungsklasse des Runnable-Schnittstelle und überschreiben auch die run()-Methode, diese run() Die Methode ist der Ausführungskörper des Threads wie die run()-Methode in Thread

2] Erstellen Sie eine Instanz der Runnable-Implementierungsklasse und Verwenden Sie diese Instanz als Ziel von Thread, um ein Thread-Objekt zu erstellen.

3] Der dritte Teil besteht darin, den Thread durch Aufrufen der start()-Methode des Threads zu starten Objekt

Beispiel:

public class MyThread2 implements Runnable {//实现Runnable接口
  public void run(){
  //重写run方法
  }
}
public class Main {
  public static void main(String[] args){
    //创建并启动线程
    MyThread2 myThread=new MyThread2();
    Thread thread=new Thread(myThread);
    thread().start();
    //或者    new Thread(new MyThread2()).start();
  }
}
Nach dem Login kopieren

Verwenden Sie Callable und Future, um einen Thread zu erstellen. Die Schritte sind wie folgt:

1] Erstellen Sie eine Implementierungsklasse des Aufrufbare Schnittstelle, implementieren Sie die Methode call() und erstellen Sie dann eine Instanz der Implementierungsklasse (ab Java8 können Sie Lambda-Ausdrücke direkt zum Erstellen aufrufbarer Objekte verwenden).

2] Verwenden Sie die FutureTask-Klasse, um das Callable-Objekt zu umschließen. Das FutureTask-Objekt kapselt den Rückgabewert der call()-Methode des Callable-Objekts.

3] Verwenden Sie das FutureTask-Objekt als Ziel des Thread-Objekts, um es zu erstellen und zu starten. Thread (da FutureTask die Runnable-Schnittstelle implementiert)

4] Rufen Sie die get()-Methode des FutureTask-Objekts auf, um den Rückgabewert zu erhalten, nachdem die Ausführung des Sub-Threads beendet ist

Beispiel:

public class Main {
  public static void main(String[] args){
   MyThread3 th=new MyThread3();
   //使用Lambda表达式创建Callable对象
     //使用FutureTask类来包装Callable对象
   FutureTask<Integer> future=new FutureTask<Integer>(
    (Callable<Integer>)()->{
      return 5;
    }
    );
   new Thread(task,"有返回值的线程").start();//实质上还是以Callable对象来创建并启动线程
    try{
    System.out.println("子线程的返回值:"+future.get());//get()方法会阻塞,直到子线程执行结束才返回
    }catch(Exception e){
    ex.printStackTrace();
   }
  }
}
Nach dem Login kopieren

Für weitere Java-Kenntnisse beachten Sie bitte die Spalte Java Basic Tutorial.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen Thread in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage