BlogJava 聯(lián)系 聚合 管理  

          Blog Stats

          隨筆檔案

          exams


          java世界

          世界Java

          import java.io.*;

          //多線程編程
          public class MultiThread  
          {
          public static void main(String args[])
          {
          System.out.println("我是主線程!");
          //下面創(chuàng)建線程實(shí)例thread1
          ThreadUseExtends thread1=new ThreadUseExtends();
          //創(chuàng)建thread2時以實(shí)現(xiàn)了Runnable接口的THhreadUseRunnable類實(shí)例為參數(shù)
          Thread thread2=new Thread(new ThreadUseRunnable(),"SecondThread");
          thread1.start();//啟動線程thread1使之處于就緒狀態(tài)
          //thread1.setPriority(6);//設(shè)置thread1的優(yōu)先級為6
          //優(yōu)先級將決定cpu空出時,處于就緒狀態(tài)的線程誰先占領(lǐng)cpu開始運(yùn)行
          //優(yōu)先級范圍1到10,MIN_PRIORITY,MAX_PRIORITY,NORM_PAIORITY
          //新線程繼承創(chuàng)建她的父線程優(yōu)先級,父線程通常有普通優(yōu)先級即5NORM_PRIORITY
          System.out.println("主線程將掛起7秒!");
          try
          {
          Thread.sleep(7000);//主線程掛起7秒
          }
          catch (InterruptedException e)
          {
          return;
          }
          System.out.println("又回到了主線程!");
          if(thread1.isAlive())
          {  
          thread1.stop();//如果thread1還存在則殺掉他
          System.out.println("thread1休眠過長,主線程殺掉了thread1!");
          }
          else
          System.out.println("主線程沒發(fā)現(xiàn)thread1,thread1已醒順序執(zhí)行結(jié)束了!");
          thread2.start();//啟動thread2
          System.out.println("主線程又將掛起7秒!");
          try
          {
          Thread.sleep(7000);//主線程掛起7秒
          }
          catch (InterruptedException e)
          {
          return;
          }
          System.out.println("又回到了主線程!");
          if(thread2.isAlive())
          {  
          thread2.stop();//如果thread2還存在則殺掉他
          System.out.println("thread2休眠過長,主線程殺掉了thread2!");
          }
          else
          System.out.println("主線程沒發(fā)現(xiàn)thread2,thread2已醒順序執(zhí)行結(jié)束了!");
          System.out.println("程序結(jié)束按任意鍵繼續(xù)!");
          try
          {
          System.in.read();
          }
          catch (IOException e)
          {
          System.out.println(e.toString());
          }


          }//main
          }//MultiThread



          class ThreadUseExtends extends Thread
          //通過繼承Thread類,并實(shí)現(xiàn)它的抽象方法run()
          //適當(dāng)時候創(chuàng)建這一Thread子類的實(shí)例來實(shí)現(xiàn)多線程機(jī)制
          //一個線程啟動后(也即進(jìn)入就緒狀態(tài))一旦獲得CPU將自動調(diào)用它的run()方法
          {


          ThreadUseExtends(){}//構(gòu)造函數(shù)
          public void run()
          {
          System.out.println("我是Thread子類的線程實(shí)例!");
          System.out.println("我將掛起10秒!");
          System.out.println("回到主線程,請稍等,剛才主線程掛起可能還沒醒過來!");
          try
          {
          sleep(10000);//掛起5秒
          }
          catch (InterruptedException e)
          {
          return;
          }
          //如果該run()方法順序執(zhí)行完了,線程將自動結(jié)束,而不會被主線程殺掉
          //但如果休眠時間過長,則線程還存活,可能被stop()殺掉
          }
          }



          class ThreadUseRunnable implements Runnable
          //通過實(shí)現(xiàn)Runnable接口中的run()方法,再以這個實(shí)現(xiàn)了run()方法的類
          //為參數(shù)創(chuàng)建Thread的線程實(shí)例
          {
          //Thread thread2=new Thread(this);
          //以這個實(shí)現(xiàn)了Runnable接口中run()方法的類為參數(shù)創(chuàng)建Thread類的線程實(shí)例
          ThreadUseRunnable(){}//構(gòu)造函數(shù)
          public void run()
          {
          System.out.println("我是Thread類的線程實(shí)例并以實(shí)現(xiàn)了Runnable接口的類為參數(shù)!");
          System.out.println("我將掛起1秒!");
          System.out.println("回到主線程,請稍等 jn0-120  try
          {
          Thread.sleep(1000);//掛起5秒
          }
          catch (InterruptedException e)
          {
          return;
          }
          //如果該run()方法順序執(zhí)行完了,線程將自動結(jié)束,而不會被主線程殺掉
          //但如果休眠時間過長,則線程還存活,可能被stop()殺掉
          }


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


          評論

          # re: java一個多線程的經(jīng)典例子 2007-09-19 11:19 千里冰封
          呵呵,有意思.其實(shí)JAVA的線程確實(shí)挺靈活的  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2007-09-19 11:37 Unmi
          代碼有點(diǎn)亂,不過意思大概是這樣子的
          Win32下是主線程使用API方法
          WaitForSingleObject() 等待單一線程
          或者
          WaitForMultiObject() 等待多個線程
          等待用戶線程執(zhí)行完的信號,退出主線程

          如果你能夠把Object的notify()或notifyAll(),三個wait()方法應(yīng)用上,那么你對線程以及線程間的事件對象(win32的名詞)就有更透徹的理解了

          多線程的實(shí)現(xiàn)機(jī)制其實(shí)在Java中與用Win32 API是完全一致的。  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2007-09-19 11:59 千里冰封
          JAVA線程也是模擬的,不過模擬的很牛B  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2007-09-19 17:25 Unmi
          很奇怪,不過也很顯然,有人被瘋狗咬人,迅速過了潛伏期,轉(zhuǎn)而亂咬起人來了。  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2007-09-19 21:21 TrampEagle
          不錯,有意思,寫的有意思,哈哈。  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2008-10-18 22:25 ddd
          Thread.sleep(1000);//掛起5秒   回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2008-10-18 22:25 ddd
          Thread.sleep(1000);//掛起5秒
          Thread.sleep(1000);//掛起5秒
          Thread.sleep(1000);//掛起5秒
          Thread.sleep(1000);//掛起5秒   回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2011-07-26 09:51 薩嘎哈
          sb  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子[未登錄] 2012-07-10 14:38 123
          @千里冰封
          干脆看不懂啊  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子[未登錄] 2012-07-10 14:39 123
          看不懂  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2013-03-28 10:47 楊揚(yáng)
          很經(jīng)典,確實(shí)不錯  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2013-07-04 15:10 hhshao_10
          樓主學(xué)的太淺了吧。。。表面是多線程,問題根本沒體現(xiàn)出來,對同一資源的訪問有沒?線程之間的通信有沒?我覺得這例子不經(jīng)典。。傻逼樓主哈哈  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2013-07-09 11:34 寶少
          看不太懂。。。@薩嘎哈
          sb就是你,你就是sb  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2013-07-09 11:34 寶少
          @薩嘎哈
          sb就是你,你就是sb,還是龜兒子  回復(fù)  更多評論
            

          # re: java一個多線程的經(jīng)典例子 2013-09-22 17:32 Bairrfhoinn
          這種代碼,怎壹個亂字了得,就不會用用代碼高亮工具排個版啊...  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 外汇| 富锦市| 洛南县| 平定县| 宁德市| 南召县| 海南省| 北碚区| 丰宁| 靖江市| 大埔区| 肃南| 宜兰市| 公主岭市| 新泰市| 巫山县| 曲沃县| 健康| 朔州市| 读书| 土默特右旗| 怀化市| 仙游县| 忻州市| 锦州市| 白沙| 铜梁县| 缙云县| 桃园市| 乐昌市| 馆陶县| 永川市| 文水县| 南阳市| 宜君县| 定州市| 灵璧县| 陆河县| 旬阳县| 长武县| 关岭|