1. <bdo id="8zfej"></bdo>
    <li id="8zfej"><meter id="8zfej"><th id="8zfej"></th></meter></li>

    南京中博教育

    全國咨詢電話:15195455103

    三分鐘了解中博教育
    當前位置:南京中博教育 > 課程設置 > ACCP課程JAVA技術

    JAVA中結束線程的方法

    來源:劉叢楓? ? ? 作者:IT教育 ? ??

    Thread.stop,Thread.suspend,Thread.resume和Runtime.runFinalizersOnExit這些終止線程運行的方法已經被廢棄,使用它們是極端不安全的! 現在,如果你要安全有效地終止一個線程,應該采用以下這些方法
    Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit 這些終止線程運行的方法已經被廢棄,使用它們是極端不安全的!
     
    現在,如果你要安全有效地終止一個線程,應該采用以下這些方法:
     
    1,線程正常執行完畢,正常結束
    也就是讓run方法執行完畢,該線程就會正常結束。
     
    2,監視某些條件,結束線程的不間斷運行
    然而,常常有些線程是伺服線程。它們需要長時間的運行,只有在外部某些條件滿足的情況下,才能關閉這些線程。
    通常,它們執行在一個while(true)的死循環中。
    如:
    @Override
        publicvoid run() {
           
           while(true){
               someWork();
               if(finished){
                  break;
               }
               try {
                  Thread.sleep(10000);
               } catch (InterruptedException e) {
                  /* TODO自動生成 catch 塊
                   *
                   */
                  e.printStackTrace();
               }
           }
     
       }
    我們可以在while死循環內,每次循環時,察看外部條件,看看是否需要關閉當前線程。如果是,就break,跳出死循環,或者是拋出異常,跳出死循環,結束線程。 

    3,捕獲InterruptedException 運行時異常,中斷當前線程
    有些執行伺服任務的線程,在while(true)這樣的死循環內部,是一個阻塞中的方法。此時,就不能采用第二種方法了。因為,當該方法沒有返回時,該線程一直處于阻塞當中,根本無法執行其他語句。
    此時,就需要調用該線程的interrupt方法,產生一個InterruptedException運行時異常,是阻塞中的那個方法拋出這個異常,從而讓我們有機會結束這個線程的執行。 
    如:
    @Override
        publicvoid run() {
    while(true){
               try {
    // getSendMessages 是BlockingQueue類。它的take方法將會阻塞!
                  responseMessage = this.getSendMessages().take(); 
               } catch (InterruptedException e1) {
        
                  thrownew RuntimeException();
    //或者break;
               }
               someWork();
           
        } 
    一個外部的Thread 對象 指向這個線程。 需要結束這個線程時,只需要調用thread對象的interrupt() 方法,就會在
    responseMessage = this.getSendMessages().take();
    這條語句中產生一個InterruptedException異常,從而結束該線程的阻塞狀態,通過拋出異常,或者break跳出死循環,結束這個線程。
     

    分享到:
    近期文章

    搶試聽名額

    名額僅剩66名

    教育改變生活

    WE CHANGE LIVES

    主站蜘蛛池模板: 久久综合琪琪狠狠天天| 色噜噜狠狠狠狠色综合久| 国产99久久亚洲综合精品| 一本久道久久综合| 亚洲综合一区二区精品导航| 色九月亚洲综合网| 国产成人无码综合亚洲日韩| 四月婷婷七月婷婷综合| 狠狠色婷婷综合天天久久丁香| 国产成+人+综合+亚洲专| 亚洲国产综合精品中文字幕| 91精品国产综合久久青草| 亚洲色欲久久久久综合网| 亚洲精品第一国产综合亚AV| 亚洲综合久久成人69| 一本一道久久综合狠狠老| 婷婷六月久久综合丁香可观看| 97se色综合一区二区二区| 狠狠色丁香婷婷综合久久来| 九九综合九九综合| 国产亚洲精品第一综合| 狠狠综合视频精品播放| 亚洲欧洲av综合色无码| 色综合67194| 精品综合久久久久久99| 久久综合给合久久狠狠狠97色| 亚洲国产精品综合久久网络| 丁香六月婷婷综合激情动漫| 国产精品激情综合久久| 一本久久a久久精品vr综合| 亚洲伊人久久成综合人影院| 国产成人综合精品| 伊人久久大香线蕉综合5g| 亚洲色图综合在线| 久久婷婷五月国产色综合| 亚洲精品综合在线影院| 好了av第四综合无码久久| 亚洲国产天堂久久综合| 久久综合九色综合97_久久久| 国产成人综合久久综合| 国产在线视频色综合|