「Java面试」如何中断一个正在运行的线程?
「Java面試」如何中斷一個正在運行的線程 ?
一個去京東面試的工作了5年的粉絲來找我說:
Mic老師,你說并發(fā)編程很重要,果然我今天又掛在一道并發(fā)編程的面試題上了 。
我問他問題是什么,他說:”如何中斷一個正在運行中的線程?“ 。
我說這個問題很多工作2年的人都知道~
好吧,對于這個問題,來看看普通人和高手的回答。
普通人:
嗯 。。。。 。。。
高手 :
關于這個問題,我從幾個方面來回答。
首先,線程是系統(tǒng)級別的概念,在Java里面實現的線程,最終的執(zhí)行和調度都是由操作系統(tǒng)來決定的,JVM只是對操作系統(tǒng)層面的線程做了一層包裝而已。
所以我們在Java里面通過start方法啟動一個線程的時候,只是告訴操作系統(tǒng)這個線程可以被執(zhí)行,但是最終交給CPU來執(zhí)行是操作系統(tǒng)的調度算法來決定的