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