熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

JAVA多線程學習初步經典實例

2013-11-23 19:42:03  來源: Java高級技術 

  import javaio*;

  //多線程編程

  public class MultiThread

  {

  public static void main(String args[])

  {

  Systemoutprintln(我是主線程!);

  //下面創建線程實例thread

  ThreadUseExtends thread=new ThreadUseExtends();

  //創建thread時以實現了Runnable接口的THhreadUseRunnable類實例為參數

  Thread thread=new Thread(new ThreadUseRunnable()SecondThread);

  threadstart();//啟動線程thread使之處於就緒狀態

  //threadsetPriority();//設置thread的優先級為

  //優先級將決定cpu空出時處於就緒狀態的線程誰先占領cpu開始運行

  //優先級范圍MIN_PRIORITYMAX_PRIORITYNORM_PAIORITY

  //新線程繼承創建她的父線程優先級父線程通常有普通優先級即NORM_PRIORITY

  Systemoutprintln(主線程將掛起秒!);

  try

  {

  Threadsleep();//主線程掛起

  }

  catch (InterruptedException e)

  {

  return;

  }

  Systemoutprintln(又回到了主線程!);

  if(threadisAlive())

  {

  threadstop();//如果thread還存在則殺掉他

  Systemoutprintln(thread休眠過長主線程殺掉了thread!);

  }

  else

  Systemoutprintln(主線程沒發現threadthread已醒順序執行結束了!);

  threadstart();//啟動thread

  Systemoutprintln(主線程又將掛起秒!);

  try

  {

  Threadsleep();//主線程掛起

  }

  catch (InterruptedException e)

  {

  return;

  }

  Systemoutprintln(又回到了主線程!);

  if(threadisAlive())

  {

  threadstop();//如果thread還存在則殺掉他

  Systemoutprintln(thread休眠過長主線程殺掉了thread!);

  }

  else

  Systemoutprintln(主線程沒發現threadthread已醒順序執行結束了!);

  Systemoutprintln(程序結束按任意鍵繼續!);

  try

  {

  Systeminread();

  }

  catch (IOException e)

  {

  Systemoutprintln(etoString());

  }

  }//main

  }//MultiThread

  class ThreadUseExtends extends Thread

  //通過繼承Thread類並實現它的抽象方法run()

  //適當時候創建這一Thread子類的實例來實現多線程機制

  //一個線程啟動後(也即進入就緒狀態)一旦獲得CPU將自動調用它的run()方法

  {

  ThreadUseExtends(){}//構造函數

  public void run()

  {

  Systemoutprintln(我是Thread子類的線程實例!);

  Systemoutprintln(我將掛起秒!);

  Systemoutprintln(回到主線程請稍等剛才主線程掛起可能還沒醒過來!);

  try

  {

  sleep();//掛起

  }

  catch (InterruptedException e)

  {

  return;

  }

  //如果該run()方法順序執行完了線程將自動結束而不會被主線程殺掉

  //但如果休眠時間過長則線程還存活可能被stop()殺掉

  }

  }

  class ThreadUseRunnable implements Runnable

  //通過實現Runnable接口中的run()方法再以這個實現了run()方法的類

  //為參數創建Thread的線程實例

  {

  //Thread thread=new Thread(this);

  //以這個實現了Runnable接口中run()方法的類為參數創建Thread類的線程實例

  ThreadUseRunnable(){}//構造函數

  public void run()

  {

  Systemoutprintln(我是Thread類的線程實例並以實現了Runnable接口的類為參數!);

  Systemoutprintln(我將掛起秒!);

  Systemoutprintln(回到主線程請稍等剛才主線程掛起可能還沒醒過來!);

  try

  {

  Threadsleep();//掛起

  }

  catch (InterruptedException e)

  {

  return;

  }

  //如果該run()方法順序執行完了線程將自動結束而不會被主線程殺掉

  //但如果休眠時間過長則線程還存活可能被stop()殺掉

  }

  }

  //該程序可做的修改如改休眠時間或優先級setPriority()

  評論

  通過繼承Thread類和實現Runnable接口的兩種方式來實現多線程編程!


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27328.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.