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

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

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

    Calvin's Tech Space

    成于堅忍,毀于浮躁

       :: 首頁 :: 聯系 :: 聚合  :: 管理
    1.不要使用thread.stop()方法。
    2.使用共享變量來檢查是否需要終止線程。
    但是如果線程被阻塞了,它就不可能去主動去檢查變量了,這時要使用thread.interrupt來中斷線程嗎?
    謹慎使用thread.interrupt方法!

    Thread.interrupt()方法不會中斷一個正在運行的線程。這一方法實際上完成的是,在線程受到阻塞時拋出一個中斷信號,這樣線程就得以退出阻塞的狀態。更確切的說,如果線程被Object.wait, Thread.join和Thread.sleep三種方法之一阻塞,那么,它將接收到一個中斷異常(InterruptedException),從而提早地終結被阻塞狀態。

    因此,如果線程被上述幾種方法阻塞,正確的停止線程方式時設置共享變量,并調用interrupt()(注意變量應該先設置)。如果線程沒有被阻塞,這時調用interrupt()將不起作用;否則,線程就將得到異常(該線程必須事先預備好處理此狀況),接著逃離阻塞狀態。在任何一種情況中,線程
    最后都將檢查共享變量然后再停止。


    中斷標志必須是volatile的,以便run方法能夠看到它,否則的話,這個值很有可能在本地有緩存。

    線程代碼為:
     1 public void run() {  
     2     while(running) { 
     4         try {  
     5             // do something may block...

     9         } catch (InterruptedException e) {  
    10             running = false
    12         }  
    13   
    14     }   //while  
    15     //.  
    16 

    需要停止線程時,調用:
    1 running = false;
    2 thread.interrupt();

    注意,一定要先設置標志位后再調用interrupt!

    如果線程因為其他原因阻塞,例如socket.accept(),這時,調用interrupt不會拋出異常,又該如何處理?
    這些情況下,需要分別處理,例如在socket上調用close方法,它將拋出一個SocketException,這與拋出InterruptException類似。

    參考:
    1、http://blog.csdn.net/nihaozhangchao/archive/2010/01/07/5147803.aspx
    2、http://blog.chenlb.com/2009/07/incorrect-use-thread-interrupt-cause-not-exit.html
    posted on 2010-10-29 16:44 calvin 閱讀(674) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 国产精品亚洲va在线观看| 亚洲va成无码人在线观看| 爱爱帝国亚洲一区二区三区| 国产91色综合久久免费| 久久亚洲成a人片| 中文字幕免费不卡二区| 国产亚洲精品资源在线26u| 99精品视频免费| 亚洲精品白浆高清久久久久久| 国产性生大片免费观看性 | 日韩高清在线高清免费| 亚洲成a人无码亚洲成www牛牛| 午夜老司机免费视频| 国产天堂亚洲精品| 国产亚洲av片在线观看18女人| 国产成人1024精品免费| 亚洲精品无码AV人在线播放| 亚欧免费无码aⅴ在线观看| 亚洲国产精品美女| 日韩免费无码一区二区视频| fc2成年免费共享视频网站| 亚洲精品tv久久久久久久久| 57pao国产成视频免费播放| 亚洲一级毛片在线播放| 国产裸模视频免费区无码| 国产精品美女免费视频观看| 国产AV无码专区亚洲AV男同| 日本黄网站动漫视频免费| 亚洲精品国产suv一区88| 亚洲性在线看高清h片| 无码av免费网站| 亚洲人成色777777老人头| 久久久久久A亚洲欧洲AV冫| 99精品免费观看| 18禁亚洲深夜福利人口| 亚洲av无码一区二区三区乱子伦 | 免费羞羞视频网站| 精品熟女少妇aⅴ免费久久 | 一区二区三区亚洲视频| 丁香花在线视频观看免费| 亚洲国产精品网站在线播放|