程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA完成多線程的兩種辦法實例分享

JAVA完成多線程的兩種辦法實例分享

編輯:關於JAVA

JAVA完成多線程的兩種辦法實例分享。本站提示廣大學習愛好者:(JAVA完成多線程的兩種辦法實例分享)文章只能為提供參考,不一定能成為您想要的結果。以下是JAVA完成多線程的兩種辦法實例分享正文


java說話曾經內置了多線程支撐,一切完成Runnable接口的類都可被啟動一個新線程,新線程會履行該實例的run()辦法,當run()辦法履行終了後,線程就停止了。一旦一個線程履行終了,這個實例就不克不及再從新啟動,只能從新生成一個新實例,再啟動一個新線程。
  Thread類是完成了Runnable接口的一個實例,它代表一個線程的實例,而且,啟動線程的獨一辦法就是經由過程Thread類的start()實例辦法:

  Thread t = new Thread();
  t.start();

  start()辦法是一個native辦法,它將啟動一個新線程,並履行run()辦法。Thread類默許的run()辦法甚麼也不做就加入了。留意:直接挪用run()辦法其實不會啟動一個新線程,它和挪用一個通俗的java辦法沒有甚麼差別。
  是以,有兩個辦法可以完成本身的線程:
  辦法1:本身的類extend Thread,並復寫run()辦法,便可以啟動新線程並履行本身界說的run()辦法。例如:

  public class MyThread extends Thread {
  public run() {
  System.out.println("MyThread.run()");
  }
  }

  在適合的處所啟動線程:new MyThread()。start();
  辦法2:假如本身的類曾經extends另外一個類,就沒法直接extends Thread,此時,必需完成一個Runnable接口:

  public class MyThread extends OtherClass implements Runnable {
  public run() {
  System.out.println("MyThread.run()");
  }
  }

  為了啟動MyThread,須要起首實例化一個Thread,並傳入本身的MyThread實例:

  MyThread myt = new MyThread();
  Thread t = new Thread(myt);
  t.start();

  現實上,當傳入一個Runnable target參數給Thread後,Thread的run()辦法就會挪用target.run(),參考JDK源代碼:

  public void run() {
  if (target != null) {
  target.run();
  }
  }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved