So erstellen Sie Threads
Lassen Sie uns zusammenfassen, wie Sie Multi-Threads erstellen. Als nächstes werden wir ausführlich über die Erstellungsmethoden sprechen 🎜>
1. Erben Sie die Thread-Klasse und überschreiben Sie dann die run()-Methode 2. Implementieren Sie die Runnable-Schnittstelle und überschreiben Sie dann die run()-Methode 3. Implementieren die aufrufbare Schnittstelle und überschreiben Sie dann den Aufruf93394317236f50dd7fc57027ba1d576cMethode4 Um einen Thread zu erstellen, verwenden Sie immer die von der Thread-Klasse bereitgestellte Methode „thread()“.1. Erben Sie die Thread-Klasse und überschreiben Sie die Ausführungsmethode
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. Implementieren Sie die Runnable-Schnittstelle und überschreiben Sie sie die run-Methode
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(); } }
Hier sind die drei Möglichkeiten, Thread-Namen zu erstellen: (1) Fügen Sie den Namen direkt nach den Klammern hinzu
(2) Rufen Sie setName auf () zum Festlegen des Namens
(3) Wenn kein Name festgelegt ist, verwendet das System standardmäßig Thread-(0,1,2....)
3. Implementieren Sie die Callable-Schnittstelle und überschreiben Sie die Calld94943c0b4933ad8cac500132f64757f-Methode
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. Generieren Sie zuerst das Callable-Objekt 2. Generieren Sie das FutureTask-Objekt
3. Erstellen Sie eine Thread-Übertragung. Geben Sie das FutureTask-Objekt ein
4. Der von der Callable-Schnittstelle empfangene Rückgabewert ist die get()-Methode in Future
Vergleich von drei Möglichkeiten zum Erstellen von Threads
1 . Die Vererbung der Thread-Klasse hat die Einschränkung der Einzelvererbung. Relativ gesehen ist die Implementierung der Runnable-Schnittstelle flexibler, und die Thread-Klasse selbst implementiert auch die Runnable-Schnittstelle, um dies zu unterstützen echte Thread-Klasse 2. Durch die Implementierung der Runnable-Schnittstelle kann das Konzept der Programmfreigabe besser realisiert werden
3. Die Callable-Schnittstelle wird verwendet, wenn ein Rückgabewert erforderlich ist
Wenn es offensichtlich ist Fehler im obigen Inhalt, bitte weisen Sie darauf hin, ich wäre Ihnen dankbar. Danke!
Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website:
JAVA-Video-TutorialDas obige ist der detaillierte Inhalt vonMultithreading – Erstellung von Threads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!