Java多線程完成的兩種方式。本站提示廣大學習愛好者:(Java多線程完成的兩種方式)文章只能為提供參考,不一定能成為您想要的結果。以下是Java多線程完成的兩種方式正文
java多線程完成方式次要有兩種:承繼Thread類、完成Runnable接口
1、承繼Thread類完成多線程
承繼Thread類的辦法雖然被我列為一種多線程完成方式,但Thread實質上也是完成了Runnable接口的一個實例,它代表一個線程的實例,並且,啟動線程的獨一辦法就是經過Thread類的start()實例辦法。start()辦法是一個native辦法,它將啟動一個新線程,並執行run()辦法。這種方式完成多線程很復雜,經過自己的類直接extend Thread,並復寫run()辦法,就可以啟動新線程並執行自己定義的run()辦法。例如:
public class MaYi extends Thread {
String name;
public MaYi(String name){
this.name = name;
}
public void run(){
while(true){
try {
Thread.sleep(1000);//等候1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(name+"螞蟻正在下載......");
}
}
}
啟動線程:
public static void main1(String[] args) {
MaYi m1 = new MaYi("1號");
m1.start();
MaYi m2 = new MaYi("2號");
m2.start();

2、完成Runnable接口方式完成多線程
假如自己的類曾經承繼另一個類,就無法直接extends Thread,此時,必需完成一個Runnable接口,如下:
public class MyThread extends OtherClass implements Runnable {
public void run() {
System.out.println("MyThread.run()");
}
}
為了啟動MyThread,需求首先實例化一個Thread,並傳入自己的MyThread實例:
MyThread myThread = new MyThread(); Thread thread = new Thread(myThread); thread.start();
現實上,當傳入一個Runnable target參數給Thread後,Thread的run()辦法就會調用target.run(),參考JDK源代碼:
public void run() {
if (target != null) {
target.run();
}
}
以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!