Cyh的博客

          Email:kissyan4916@163.com
          posts - 26, comments - 19, trackbacks - 0, articles - 220

          線程1--定義和啟動線程

          Posted on 2009-06-02 19:46 啥都寫點 閱讀(375) 評論(0)  編輯  收藏 所屬分類: J2SE
          關鍵技術:
          • 線程類必須實現java.lang.Runable接口或者繼承java.lang.Thread類,并且實現run方法,run方法沒有返回值,也沒有輸入參數,也不允許拋出異常。
          • 調用Thread類的start實例方法啟動一個線程。調用該方法后,線程準備啟動,當獲得CPU資源時,start方法將自動調用run方法,線程才真正開始運行。

          package book.thread;

          import java.util.Date;

          public class DefineThread {
              
          /**
               * 通過繼承java.lang.Thread類定義線程
               
          */
              
          class ThreadA extends Thread{
                  
          /**    線程被運行的時刻    */
                  
          private Date runDate;
                  
          /**
                   * 當線程被運行時調用此方法
                   
          */
                  
          public void run(){
                      System.out.println(
          "ThreadA begin,");
                      
          this.runDate = new Date();
                      System.out.println(
          "ThreadA end.");
                  }
              }
              
              
          /**
               * 通過實現java.lang.Runnable接口定義線程
               
          */
              
          class ThreadB implements Runnable{
                  
          /**    線程被運行的時刻    */
                  
          private Date runDate;
                  
          public void run(){
                      System.out.println(
          "ThreadB begin,");
                      
          this.runDate = new Date();
                      System.out.println(
          "ThreadB end.");
                  }
              }
              
          /**
               * 啟動一個ThreadA線程
               
          */
              
          public void startA(){
                  Thread threadA 
          = new ThreadA();
                  
          //調用Thread的start方法啟動線程
                  threadA.start();
              }
              
          /**
               * 啟動一個ThreadB線程
               
          */
              
          public void startB(){
                  Runnable tb 
          = new ThreadB();
                  
          //用Runnable對象構造線程
                  Thread threadB = new Thread(tb);
                  threadB.start();
              }
              
              
          public static void main(String[] args) {
                  DefineThread test 
          = new DefineThread();
                  
          //線程的運行具有不確定性,先啟動的線程不一定先運行,取決于虛擬機。
                  test.startA();
                  test.startB();
              }
          }



                                                                                                                 --    學海無涯
                  

          主站蜘蛛池模板: 广州市| 青浦区| 兰考县| 蒙山县| 拉萨市| 茶陵县| 铁岭市| 合川市| 高清| 洞口县| 泰来县| 金阳县| 榆社县| 平原县| 修水县| 黄龙县| 五寨县| 台安县| 五河县| 德安县| 邹平县| 曲阜市| 西峡县| 嘉禾县| 广丰县| 莲花县| 朝阳县| 龙山县| 潜山县| 怀来县| 玉田县| 麻江县| 漳平市| 庄浪县| 济源市| 务川| 巴南区| 台东县| 林甸县| 青田县| 九寨沟县|