課程
/后端開發
/Java
/深入淺出Java多線程
所以要怎么停止線程呢?用:valatile boolean keepruning =false; 就可以了是嘛?
2018-08-18
源自:深入淺出Java多線程 3-2
正在回答
首先,線程會在把線程內代碼全部跑完以后停止,這叫做正常停止。調用stop是強行停止,不推薦使用。這里使用了keeprunning = false,那么就會跳出while循環,然后繼續進行while循環以下的剩余代碼,等剩余代碼跑完,線程內就沒有代碼可以跑了,于是該線程就自己停止了。換成別的情況也是一樣,比如說你得線程里只有一個System.out.print(),那么在執行完這個打印任務后,線程就停止了,這種情況不需要keeprunning=false。這里使用keeprunning=false的目的只是讓代碼能夠跳出while循環,并不是說所有線程內部都必須強制用一個keeprunning來讓線程正常停止。
舉報
帶你一起深入淺出多線程,掌握基礎,展望進階路線
1 回答停止線程鍵
2 回答線程的停止
1 回答正確停止線程異議
1 回答線程的錯誤停止方法
1 回答線程的正確停止方法
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-08-21
首先,線程會在把線程內代碼全部跑完以后停止,這叫做正常停止。調用stop是強行停止,不推薦使用。這里使用了keeprunning = false,那么就會跳出while循環,然后繼續進行while循環以下的剩余代碼,等剩余代碼跑完,線程內就沒有代碼可以跑了,于是該線程就自己停止了。換成別的情況也是一樣,比如說你得線程里只有一個System.out.print(),那么在執行完這個打印任務后,線程就停止了,這種情況不需要keeprunning=false。這里使用keeprunning=false的目的只是讓代碼能夠跳出while循環,并不是說所有線程內部都必須強制用一個keeprunning來讓線程正常停止。