大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) 常見Java多線程面試題總結(jié)

常見Java多線程面試題總結(jié)

更新時(shí)間:2019-01-30 09:56:35 來源:動(dòng)力節(jié)點(diǎn) 瀏覽5741次

常見Java多線程面試題總結(jié)


  進(jìn)程和線程之間有什么不同?


  一個(gè)進(jìn)程是一個(gè)獨(dú)立(selfcontained)的運(yùn)行環(huán)境,它可以被看作一個(gè)程序或者一個(gè)應(yīng)用。而線程是在進(jìn)程中執(zhí)行的一個(gè)任務(wù)。Java運(yùn)行環(huán)境是一個(gè)包含了不同的類和程序的單一進(jìn)程。線程可以被稱為輕量級(jí)進(jìn)程。線程需要較少的資源來創(chuàng)建和駐留在進(jìn)程中,并且可以共享進(jìn)程中的資源。


  多線程編程的好處是什么?


  在多線程程序中,多個(gè)線程被并發(fā)的執(zhí)行以提高程序的效率,CPU不會(huì)因?yàn)槟硞€(gè)線程需要等待資源而進(jìn)入空閑狀態(tài)。多個(gè)線程共享堆內(nèi)存(heapmemory),因此創(chuàng)建多個(gè)線程去執(zhí)行一些任務(wù)會(huì)比創(chuàng)建多個(gè)進(jìn)程更好。舉個(gè)例子,Servlets比CGI更好,是因?yàn)镾ervlets支持多線程而CGI不支持。


  用戶線程和守護(hù)線程有什么區(qū)別?


  當(dāng)我們?cè)贘ava程序中創(chuàng)建一個(gè)線程,它就被稱為用戶線程。一個(gè)守護(hù)線程是在后臺(tái)執(zhí)行并且不會(huì)阻止JVM終止的線程。當(dāng)沒有用戶線程在運(yùn)行的時(shí)候,JVM關(guān)閉程序并且退出。一個(gè)守護(hù)線程創(chuàng)建的子線程依然是守護(hù)線程。


  我們?nèi)绾蝿?chuàng)建一個(gè)線程?


  有兩種創(chuàng)建線程的方法:一是實(shí)現(xiàn)Runnable接口,然后將它傳遞給Thread的構(gòu)造函數(shù),創(chuàng)建一個(gè)Thread對(duì)象;二是直接繼承Thread類。


  有哪些不同的線程生命周期?


  當(dāng)我們?cè)贘ava程序中新建一個(gè)線程時(shí),它的狀態(tài)是New。當(dāng)我們調(diào)用線程的start()方法時(shí),狀態(tài)被改變?yōu)镽unnable。線程調(diào)度器會(huì)為Runnable線程池中的線程分配CPU時(shí)間并且講它們的狀態(tài)改變?yōu)镽unning。其他的線程狀態(tài)還有Waiting,Blocked和Dead。讀這篇文章可以了解更多關(guān)于線程生命周期的知識(shí)。


  可以直接調(diào)用Thread類的run()方法么?


  當(dāng)然可以,但是如果我們調(diào)用了Thread的run()方法,它的行為就會(huì)和普通的方法一樣,為了在新的線程中執(zhí)行我們的代碼,必須使用Thread.start()方法。


  如何讓正在運(yùn)行的線程暫停一段時(shí)間?


  我們可以使用Thread類的Sleep()方法讓線程暫停一段時(shí)間。需要注意的是,這并不會(huì)讓線程終止,一旦從休眠中喚醒線程,線程的狀態(tài)將會(huì)被改變?yōu)镽unnable,并且根據(jù)線程調(diào)度,它將得到執(zhí)行。


  你對(duì)線程優(yōu)先級(jí)的理解是什么?


  每一個(gè)線程都是有優(yōu)先級(jí)的,一般來說,高優(yōu)先級(jí)的線程在運(yùn)行時(shí)會(huì)具有優(yōu)先權(quán),但這依賴于線程調(diào)度的實(shí)現(xiàn),這個(gè)實(shí)現(xiàn)是和操作系統(tǒng)相關(guān)的(OSdependent)。我們可以定義線程的優(yōu)先級(jí),但是這并不能保證高優(yōu)先級(jí)的線程會(huì)在低優(yōu)先級(jí)的線程前執(zhí)行。線程優(yōu)先級(jí)是一個(gè)int變量(從1-10),1代表最低優(yōu)先級(jí),10代表最高優(yōu)先級(jí)。


  什么是線程調(diào)度器和時(shí)間分片?


  線程調(diào)度器是一個(gè)操作系統(tǒng)服務(wù),它負(fù)責(zé)為Runnable狀態(tài)的線程分配CPU時(shí)間。一旦我們創(chuàng)建一個(gè)線程并啟動(dòng)它,它的執(zhí)行便依賴于線程調(diào)度器的實(shí)現(xiàn)。時(shí)間分片是指將可用的CPU時(shí)間分配給可用的Runnable線程的過程。分配CPU時(shí)間可以基于線程優(yōu)先級(jí)或者線程等待的時(shí)間。線程調(diào)度并不受到Java虛擬機(jī)控制,所以由應(yīng)用程序來控制它是更好的選擇(也就是說不要讓你的程序依賴于線程的優(yōu)先級(jí))。


  在多線程中,什么是上下文切換?


  上下文切換是存儲(chǔ)和恢復(fù)CPU狀態(tài)的過程,它使得線程執(zhí)行能夠從中斷點(diǎn)恢復(fù)執(zhí)行。上下文切換是多任務(wù)操作系統(tǒng)和多線程環(huán)境的基本特征。


  關(guān)注“動(dòng)力節(jié)點(diǎn)IT培訓(xùn)官網(wǎng)”資訊內(nèi)容,獲取更多最新Java編程技術(shù)及面試題總結(jié)。


  


提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 精品人人做人人爽久久久 | 97在线播放 | 久久综合色综合 | 日本视频a | 中文字幕日韩专区 | 日本三级日本三级人妇三级四 | 欧美aav| 伊人22222 | 久久精品国内偷自一区 | 日日夜夜欧美 | 天天操狠狠操 | 婷婷综合激情网 | 四虎成人国产精品视频 | 天天视频黄 | 久久久日韩精品国产成人 | 伊人免费在线观看 | 色视频在线播放 | 亚洲精品一区二区不卡 | 亚洲精品一区二区三区在线观看 | 99久久99久久| 男人天堂欧美 | 免费超级淫片日本高清视频 | 国产亚洲欧美久久精品 | 日韩亚洲欧美性感视频影片免费看 | 亚洲欧美日韩综合 | 香蕉成人啪国产精品视频综合网 | 国产精品原创视频 | 福利在线观看视频 | 九九热这里只有国产精品 | 99久久免费精品国产免费高清 | 精品亚洲一区二区三区在线播放 | 日韩精品一区二区三区中文精品 | 亚洲一区在线视频观看 | 国产午夜永久福利视频在线观看 | 色色网视频| 阿v视频在线观看免费播放 阿v天堂2017 | 亚洲欧美在线精品一区二区 | 黄色在线观看网站 | 99热久久这里只有精品2010 | 伊人插插| 黄色直接观看 |