1ï¼çº¿ç¨æ£å¸¸æ§è¡å®æ¯ï¼æ£å¸¸ç»æã
ä¹å°±æ¯è®©runæ¹æ³æ§è¡å®æ¯ï¼è¯¥çº¿ç¨å°±ä¼æ£å¸¸ç»æã
2ï¼çè§æäºæ¡ä»¶ï¼ç»æ线ç¨çä¸é´æè¿è¡ã
ç¶èï¼å¸¸å¸¸æäºçº¿ç¨æ¯ä¼ºæ线ç¨ãå®ä»¬éè¦é¿æ¶é´çè¿è¡ï¼åªæå¨å¤é¨æäºæ¡ä»¶æ»¡è¶³çæ
åµä¸ï¼æè½å
³éè¿äºçº¿ç¨ã
é常ï¼å®ä»¬æ§è¡å¨ä¸ä¸ªwhile(true)çæ»å¾ªç¯ä¸ã
å¦:
@Override
publicvoidrun(){
while(true){
someWork();
if(finished){
break;
}
try{
Thread.sleep(10000);
}catch(InterruptedExceptione){
/*TODOèªå¨çæcatchå
*
*/
e.printStackTrace();
}
}
}
æ们å¯ä»¥å¨whileæ»å¾ªç¯å
ï¼æ¯æ¬¡å¾ªç¯æ¶ï¼å¯çå¤é¨æ¡ä»¶ï¼ççæ¯å¦éè¦å
³éå½å线ç¨ãå¦ææ¯ï¼å°±breakï¼è·³åºæ»å¾ªç¯ï¼æè
æ¯æåºå¼å¸¸ï¼è·³åºæ»å¾ªç¯ï¼ç»æ线ç¨ã
3ï¼æè·InterruptedExceptionè¿è¡æ¶å¼å¸¸ï¼ä¸æå½å线ç¨ã
æäºæ§è¡ä¼ºæä»»å¡ç线ç¨ï¼å¨while(true)è¿æ ·çæ»å¾ªç¯å
é¨ï¼æ¯ä¸ä¸ªé»å¡ä¸çæ¹æ³ãæ¤æ¶ï¼å°±ä¸è½éç¨ç¬¬äºç§æ¹æ³äºãå 为ï¼å½è¯¥æ¹æ³æ²¡æè¿åæ¶ï¼è¯¥çº¿ç¨ä¸ç´å¤äºé»å¡å½ä¸ï¼æ ¹æ¬æ æ³æ§è¡å
¶ä»è¯å¥ã
æ¤æ¶ï¼å°±éè¦è°ç¨è¯¥çº¿ç¨çinterruptæ¹æ³ï¼äº§çä¸ä¸ªInterruptedExceptionè¿è¡æ¶å¼å¸¸ï¼æ¯é»å¡ä¸çé£ä¸ªæ¹æ³æåºè¿ä¸ªå¼å¸¸ï¼ä»è让æ们ææºä¼ç»æè¿ä¸ªçº¿ç¨çæ§è¡ã
å¦ï¼
@Override
publicvoidrun(){
while(true){
try{
//getSendMessagesæ¯BlockingQueueç±»ãå®çtakeæ¹æ³å°ä¼é»å¡ï¼
responseMessage=this.getSendMessages().take(); [Page]
}catch(InterruptedExceptione1){
thrownewRuntimeException();
//æè
break;
}
someWork();
}
ä¸ä¸ªå¤é¨çThread对象æåè¿ä¸ªçº¿ç¨ãéè¦ç»æè¿ä¸ªçº¿ç¨æ¶ï¼åªéè¦è°ç¨thread对象çinterrupt()æ¹æ³ï¼å°±ä¼å¨
responseMessage=this.getSendMessages().take();
è¿æ¡è¯å¥ä¸äº§çä¸ä¸ªInterruptedExceptionå¼å¸¸ï¼ä»èç»æ该线ç¨çé»å¡ç¶æï¼éè¿æåºå¼å¸¸ï¼æè
breakè·³åºæ»å¾ªç¯ï¼ç»æè¿ä¸ªçº¿ç¨ã
温馨提示:答案为网友推荐,仅供参考