Heim >häufiges Problem >Ein Artikel, um zu verstehen, wie man Threads in Java versteht
Dieser Artikel vermittelt Ihnen relevantes Wissen über Java, das hauptsächlich Probleme im Zusammenhang mit Threads organisiert. Die Hauptmethode, mit der wir vertraut sind, ist eigentlich ein separater Ausführungspfad Wenn es einen Ausführungspfad im Programm gibt, ist das Programm ein Single-Thread-Programm. Ich hoffe, es wird für alle hilfreich sein.
Empfohlene Studie: „Java-Video-Tutorial“
Thread ist ein Ausführungspfad innerhalb eines Programms, wenn es nur einen Ausführungspfad im Programm gibt Dann ist dieses Programm ein „Single-Thread-Programm“; da es einen einzelnen Thread gibt, gibt es auch Multi-Threading. Die wörtliche Bedeutung kann als „eine Technologie, die mehrere Prozesse auf Software und Hardware relativ zu einem einzelnen Thread ausführt“ verstanden werden .“ Die Vorteile von Multithreading sind Verbesserung der CPU-Auslastung. Wenn in einem Multithread-Programm ein Thread warten muss, kann die CPU andere Threads ausführen, anstatt zu warten, was die Effizienz des Programms erheblich verbessert. Erstellung von Multi-Threads
public class ThreadDemo01 { public static void main(String[] args) { MyThread myThread1 = new MyThread(); myThread1.start(); for (int i = 0; i < 3; i++) { System.out.println("主线程正在执行~~"); } } } class MyThread extends Thread{ @Override public void run() { for (int i = 0; i < 3; i++) { System.out.println("子线程正在执行~~"); } } } //输出结果(不唯一): //主线程正在执行~~ //主线程正在执行~~ //主线程正在执行~~ //子线程正在执行~~ //子线程正在执行~~ //子线程正在执行~~
Vor- und Nachteile der ersten Methode:
Vorteile: Einfache Codierung;1. Definieren Sie eine Thread-Task-Klasse MyRunnable, um die run()-Methode zu überschreiben.
3. Übergeben Sie das MyRunnable-Task-Objekt zur Verarbeitung;
4. Rufen Sie das Thread-Objekt auf. Die start()-Methode startet den Thread.
Methode
öffentlicher Thread (ausführbares Ziel) | |||||||||||||||||||||||||||||
方法名称 | 说明 | |
public FutureTask<>(Callable call) | 把Callable对象封装成FutureTask对象 | |
public V get() throws Exception | 获取线程执行call方法返回的结果 |
方式 | 优点 | 缺点 |
继承Thread类 | 编程比较简单,可以直接使用Thread类中的方法 | 扩展性较差,不能再继承其他的类,不能返回线程执行的结果 |
实现Runnable接口 | 扩展性强,实现该接口的同时还可以继承其他的类 | 编程相对复杂,不能返回线程执行的结果 |
实现Callable接口 | 扩展性强,实现该接口的同时还可以继承其他的类,可以得到线程的执行结果 | 编程相对复杂 |
方法名称 | 说明 |
String getName() | 获取当前线程的名称,默认线程名称是Thread-索引 |
void setName(String name) | 将此线程更改为指定的名称,通过构造器也可以设置线程名称 |
简单地通过一段代码让大家能够清晰地了解这个代码该如何使用:
public class ThreadDemo04 { public static void main(String[] args) throws Exception { thread thread1 = new thread(); thread1.setName("1号子线程"); thread1.start(); thread thread2 = new thread(); thread2.setName("2号子线程"); thread2.start(); } } class thread extends Thread { @Override public void run() { for (int i = 0; i < 3; i++) { System.out.println(this.getName()+"正在执行任务"+i); } } } //输出结果: //2号子线程正在执行任务0 //1号子线程正在执行任务0 //2号子线程正在执行任务1 //1号子线程正在执行任务1 //2号子线程正在执行任务2 //1号子线程正在执行任务2
方法名称 | 说明 |
public static void sleep(long time) | 让当前线程休眠指定的时间后再继续执行,单位为毫秒 |
public class ThreadDemo05 { public static void main(String[] args) throws Exception { for (int i = 0; i < 5; i++) { System.out.println(i); if (i==3){ Thread.sleep(5000); } } } } //输出结果: //1 //2 //3 //在输出过3以后,等待5秒之后再进行输出 //4
推荐学习:《java视频教程》
Das obige ist der detaillierte Inhalt vonEin Artikel, um zu verstehen, wie man Threads in Java versteht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!