国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java多線程實現的兩種方式

2019-11-26 13:15:58
字體:
來源:轉載
供稿:網友

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();   } } 

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 额尔古纳市| 克山县| 大庆市| 瑞金市| 汉寿县| 邳州市| 奇台县| 安塞县| 崇明县| 富顺县| 绥阳县| 台南市| 白玉县| 云南省| 高唐县| 望奎县| 修水县| 勃利县| 新巴尔虎左旗| 常德市| 鄱阳县| 顺平县| 哈尔滨市| 余庆县| 青川县| 满城县| 耿马| 福州市| 筠连县| 白山市| 金平| 特克斯县| 青龙| 唐河县| 福州市| 嘉黎县| 浦北县| 恭城| 屏南县| 江城| 故城县|