amp@java

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            99 隨筆 :: 0 文章 :: 228 評論 :: 0 Trackbacks
          剛剛才知道,原來Java的線程是不能重啟的,也就是說,當(dāng)線程的run()方法執(zhí)行到最后一行,退出之后,這個(gè)線程就結(jié)束了,不能再通過start()方法重啟啟動(dòng)這個(gè)線程,只能重新構(gòu)造一個(gè)線程對象,再調(diào)用其start()方法來啟動(dòng),但這個(gè)對象和原來那個(gè)對象已經(jīng)不同了。
          為了實(shí)現(xiàn)某個(gè)線程對象的“重啟”功能,可以在它的run()方法的最外層加上一個(gè)循環(huán)語句:
          1 public void run(){
          2   while(!stop){
          3     //do something
          4   }
          5 }

          這樣,只要stop不為true,run()方法就不會(huì)結(jié)束,不斷地“重啟”。
          如果run()方法里面還有一個(gè)循環(huán),那么就要兩個(gè)停止標(biāo)志:
          1 public void run(){
          2   while(!stop){
          3     //do something
          4     while(!stop && !restart){
          5       //do other thing
          6     }
          7   }
          8 }
          9 
          這樣,如果需要“重啟”線程,只要把restart設(shè)為true即可,如果要退出線程,只要把stop設(shè)為true即可。
          posted on 2008-04-22 10:56 amp@java 閱讀(4187) 評論(0)  編輯  收藏 所屬分類: Java common
          主站蜘蛛池模板: 永新县| 民权县| 孙吴县| 启东市| 罗江县| 理塘县| 山阴县| 永年县| 邢台市| 双江| 夹江县| 南雄市| 南丰县| 塔河县| 峨边| 济源市| 藁城市| 南召县| 泰顺县| 苍南县| 庄浪县| 晋城| 永福县| 庆阳市| 徐汇区| 汝州市| 天津市| 金湖县| 清新县| 奉节县| 翼城县| 康平县| 赣州市| 长乐市| 东乡县| 连城县| 景谷| 彰化市| 蓬溪县| 宜阳县| 侯马市|