大战熟女丰满人妻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ù)文檔推薦 >>
主站蜘蛛池模板: 国产精品久久久久久久久久久不卡 | 91免费在线| 欧美色视频在线观看 | 2021最新国产成人精品视频 | 天天玩天天操 | 国产成人精品久久一区二区三区 | 欧美 日| 国产欧美亚洲三区久在线观看 | 四虎影院永久网站 | 成人国产在线24小时播放视频 | 国产精品_国产精品_国产精品 | 久久综合九色综合国产 | 欧美综合图区亚洲综合图区 | 五月天丁香婷婷综合 | 91福利一区二区在线观看 | 中文字幕人成不卡一区 | 最新国产午夜精品视频成人 | 免费真实播放国产乱子伦 | 99精品视频在线在线视频观看 | 国产精片 | 日本欧美韩国专区 | 精品热久国产福利视频 | 国产亚洲精品久久久久久无 | 性生活视频网站 | 一级毛片视频免费 | 亚洲乱码中文字幕 | 中文字幕久精品免费视频 | 欧美亚洲精品小说一区二三区 | 韩国日本三级在线观看 | 日韩色在线 | 久久久噜噜噜 | 一级成人毛片免费观看 | 最新黄色免费网站 | 亚洲精品国产手机 | 亚洲国产第一区二区三区 | 国产精品国语自产拍在线观看 | 一本色道久久综合亚洲精品高清 | 99久久国产综合精品成人影院 | 偷偷狠狠的日日高清完整视频 | 欧美va放荡人妇大片 | 国产精品亚洲精品一区二区三区 |