Java多線程面試題

1、在Java中什么是進(jìn)程森缠,什么是線程

  • 進(jìn)程:進(jìn)程是程序執(zhí)行的一個(gè)實(shí)例贵涵,進(jìn)程是線程的容器恰画。程序是指令、數(shù)據(jù)及其組織形式的描述跨晴,進(jìn)程是程序的實(shí)體片林。
  • 線程:有時(shí)被稱為輕量級(jí)進(jìn)程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元孝偎。線程是進(jìn)程中的一個(gè)實(shí)體凉敲,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位寺旺,線程自己不擁有系統(tǒng)資源阻塑,只擁有一點(diǎn)兒在運(yùn)行中必不可少的資源果复,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源虽抄。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行迈窟。

在java中车酣,進(jìn)程大致等于JVM,線程屬于JVM贫悄,線程可以被java應(yīng)用程序在運(yùn)行時(shí)動(dòng)態(tài)的創(chuàng)建和停止破衔。

2、Java程序中至少有幾個(gè)線程嫡丙?
每個(gè)java程序在main線程內(nèi)執(zhí)行读第,因此每個(gè)java程序至少有一個(gè)線程

3怜瞒、每一個(gè)Java線程都有哪些屬性

  • 線程的標(biāo)識(shí)符id
  • 線程的名稱
  • 線程優(yōu)先級(jí)
  • 線程的狀態(tài)
  • 線程所屬的線程組

4、線程有哪些狀態(tài)

  • NEW:初始狀態(tài)惠窄,線程被構(gòu)建漾橙,但是還沒有調(diào)用start方法
  • RUNNABLE:運(yùn)行狀態(tài)霜运,Java線程將被操作系統(tǒng)中的就緒和運(yùn)行兩種狀態(tài)籠統(tǒng)的稱作運(yùn)行中
  • BLOCKED:阻塞狀態(tài)蒋腮,表示線程阻塞于鎖
  • WAITING:等待狀態(tài)藕各,表示線程進(jìn)入等待狀態(tài)激况,進(jìn)入該狀態(tài)表示當(dāng)前線程需要等待其它線程做出一些特定的動(dòng)作(通知或中斷)
  • TIME_WAITING: 超時(shí)等待狀態(tài),該狀態(tài)不同于WAITING宦棺,它可以在指定的時(shí)間內(nèi)自行返回的
  • TERMINATED:終止?fàn)顟B(tài)黔帕,表示當(dāng)前線程已經(jīng)執(zhí)行完畢

JDK安裝目錄下bin目錄下執(zhí)行命令jstack工具可以查看代碼運(yùn)行時(shí)的線程信息。

5呐芥、線程的創(chuàng)建方式

  • 繼承Thread類創(chuàng)建線程類
  • 實(shí)現(xiàn)Runnable接口

一般實(shí)現(xiàn)Runnable接口的方式更好一些奋岁,關(guān)于兩者的對比闻伶,Thread和Runnable的區(qū)別

6、線程為什么不能通過Stop方法停止
stop方法過于暴力光绕,會(huì)直接終止線程畜份,并且立即釋放這個(gè)線程所持有的鎖爆雹,而這些鎖是用來維持對象一致性的,如果此時(shí)慧起,寫線程寫入的數(shù)據(jù)正寫入一半,并強(qiáng)行終止册倒,那么對象就會(huì)被寫壞完慧,同時(shí)由于鎖已經(jīng)被釋放,另外一個(gè)等待該鎖的讀線程就順利成章的讀到了這個(gè)不一致的問題。 --- 《Java高并發(fā)程序設(shè)計(jì)》. 并行程序基礎(chǔ)

7屈尼、下面的程序會(huì)輸出什么

public class MultiThreading {
    private static class MyThread extends Thread {
        public MyThread(String name) {
            super(name);
        }
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName());
        }
        public static void main(String[] args) {
            MyThread myThread = new MyThread("myThread");
            myThread.run();
            myThread.start();
        }
    }
}

調(diào)用run方法時(shí),是在main線程內(nèi)部執(zhí)行的拴孤。

main
myThread

8脾歧、什么是Daemon線程
守護(hù)線程是一種特殊的線程,在后臺(tái)默默的完成一些系統(tǒng)性的服務(wù)演熟,比如垃圾回收鞭执,JIT線程就可以理解為守護(hù)線程。與之對應(yīng)的是用戶線程芒粹,用戶線程可以理解為系統(tǒng)的工作線程,它會(huì)完成程序應(yīng)該要完成的業(yè)務(wù)操作化漆,如果用戶線程全部結(jié)束估脆,就意味著這個(gè)程序無事可做了,當(dāng)一個(gè)Java應(yīng)用內(nèi)座云,只有守護(hù)線程時(shí)疙赠,Java虛擬機(jī)就會(huì)自然退出。

守護(hù)線程必須在線程start之前設(shè)置朦拖,否則會(huì)拋出IllegalThreadStateException

9圃阳、在Java中,那些操作是原子性的璧帝?

  • 讀和寫的操作變量是 主類型的(primitive variables)除了long 和 double
  • 讀和寫的變量聲明了volatile
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捍岳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子睬隶,更是在濱河造成了極大的恐慌锣夹,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件理疙,死亡現(xiàn)場離奇詭異晕城,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)窖贤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門砖顷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赃梧,你說我怎么就攤上這事滤蝠。” “怎么了授嘀?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵物咳,是天一觀的道長。 經(jīng)常有香客問我蹄皱,道長览闰,這世上最難降的妖魔是什么芯肤? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮压鉴,結(jié)果婚禮上崖咨,老公的妹妹穿的比我還像新娘。我一直安慰自己油吭,他們只是感情好击蹲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著婉宰,像睡著了一般歌豺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上心包,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天类咧,我揣著相機(jī)與錄音,去河邊找鬼谴咸。 笑死轮听,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的岭佳。 我是一名探鬼主播血巍,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼珊随!你這毒婦竟也來了述寡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤叶洞,失蹤者是張志新(化名)和其女友劉穎鲫凶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衩辟,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡螟炫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了艺晴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昼钻。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖封寞,靈堂內(nèi)的尸體忽然破棺而出然评,到底是詐尸還是另有隱情,我是刑警寧澤狈究,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布碗淌,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亿眠。R本人自食惡果不足惜碎罚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缕探。 院中可真熱鬧魂莫,春花似錦、人聲如沸爹耗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潭兽。三九已至,卻和暖如春斗遏,著一層夾襖步出監(jiān)牢的瞬間山卦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工诵次, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留账蓉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓逾一,卻偏偏與公主長得像铸本,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子遵堵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一 用Runnable還是Thread箱玷? Java中實(shí)現(xiàn)多線程有兩種方法:繼承Thread類、實(shí)現(xiàn)Runnable...
    Q南南南Q閱讀 3,735評論 0 4
  • 下面是我自己收集整理的Java線程相關(guān)的面試題陌宿,可以用它來好好準(zhǔn)備面試锡足。 參考文檔:-《Java核心技術(shù) 卷一》-...
    阿呆變Geek閱讀 14,861評論 14 507
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法壳坪,內(nèi)部類的語法舶得,繼承相關(guān)的語法,異常的語法爽蝴,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • Java 線程面試問題 在任何Java面試當(dāng)中多線程和并發(fā)方面的問題都是必不可少的一部分沐批。如果你想獲得任何股票投資...
    堯淳閱讀 1,128評論 0 13
  • http://www.reibang.com/p/db785c3f1603 拿到app id
    aaa000閱讀 873評論 0 0