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(); } }
以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!