<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    lbom

    小江西

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      18 隨筆 :: 21 文章 :: 69 評論 :: 0 Trackbacks

    在一次基于多線程的編碼測試中,發現繼承Runnable接口的線程實現類在運行時并未按預計啟動多線程,經分析和比較后,找出問題所現,現將其記錄下來,以供分享。

    Java中,多線程編程中的線程編寫,有兩種方式,即擴展Thread基類或繼承Runnable接口;例如:

    public class T extends Thread {

    public void run() {

    ……

    }

    }

    public class R implements Runnable {

    public void run() {

    ……

    }

    }

    對于擴展Thread的實現類T,可以使用T.start()來啟動此線程;如

    public static void main(String[] args) {

    Thread t = new T();

    t.start();

    }

    但對于繼承Runnable接口的實現類R,因接口中并沒有提供直接啟動線程的start()方法,只有一個線程主邏輯運行的run()方法。此時,如執行run(),會因為R.run()只是作為此線程實現類的一個方法,并未在主線程之外,啟動另一個線程,從而導致R.run()阻斷主線程繼續向下執行;并未達到多線程運行的目的。

    錯誤啟動代碼如下:

    public static void main(String[] args) {

    R r = new R();

    r.run();

    }

    那么,如何使用另外線程來啟動繼承Runnable接口的實現類呢?以下就是它的正確的使用方式:

    public static void main(String[] args) {

    R r = new R();

    Thread t = new Thread(r);

    t.start();

    }

    此時,需注意,在主線程執行時,需等待子線程執行,否則,當主線程結束后,子線程也將結束。

    posted on 2010-03-10 16:48 lbom 閱讀(1581) 評論(2)  編輯  收藏

    評論

    # re: Thread &amp; Runnable[未登錄] 2010-03-12 19:34 feenn
    不應該出現這種低級錯誤,建議應該從理解入手,而不是只知道調用API。  回復  更多評論
      

    # re: Thread &amp; Runnable 2010-03-13 15:06 隔葉黃鶯
    說到多線程一般都會說 Thread 和 Runnable,代碼表現即為:

    1:new Thread(){
    public void run(){
    //do something......
    }
    }.start();

    2:new Thread(new Runnable(){
    public void run(){
    //do something......
    }
    }).start();

    其實了解到 Thread 與 Runnable 是一種實現關系就知道以上兩種方式其實是一回事,究底來說 run() 方法都是由 Runnable 接口來約定的,要用 start() 方法來啟動線程,要跑的方法追到頭還是 Runnable 接口中的 run() 方法。  回復  更多評論
      


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 女同免费毛片在线播放| 国产亚洲人成在线影院| 免费国产黄网站在线观看 | 免费人成视频x8x8入口| 亚洲国产成人精品无码区二本 | 久久久久亚洲av无码专区 | 免费看国产精品3a黄的视频| 亚洲视频在线视频| 120秒男女动态视频免费| 亚洲精品在线不卡| xxxx日本免费| 国产精品亚洲片在线va| 一个人看的www在线观看免费| 国产成人精品日本亚洲专一区| 成人免费看黄20分钟| jizzjizz亚洲日本少妇| 亚洲高清无码在线观看| 中文字幕在线免费看线人| 亚洲精品成人无码中文毛片不卡| 国色精品va在线观看免费视频| 亚洲第一精品在线视频| 中文字幕在线观看免费视频| 亚洲乱码在线观看| 免费人成在线观看播放国产| 在线免费播放一级毛片| 亚洲视频在线免费播放| 好吊妞在线新免费视频| 免费人成在线观看播放a| 久久综合日韩亚洲精品色| 18禁美女裸体免费网站| 亚洲日韩一区二区三区| 国产a v无码专区亚洲av| 69视频免费观看l| www亚洲精品久久久乳| 久久精品国产亚洲av麻| 在线观看免费毛片| 免费无码av片在线观看| 亚洲国产欧美一区二区三区| 久久亚洲中文字幕精品一区| 99久久久国产精品免费蜜臀| 在线亚洲精品视频|