黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java線程池的面試題,讓面試更穩(wěn)妥

更新時(shí)間:2020-03-04 12:30:06 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3530次


  1)什么是線程?


  線程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位,它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。程序員可以通過它進(jìn)行多處理器編程,你可以使用多線程對(duì)運(yùn)算密集型任務(wù)提速。比如,如果一個(gè)線程完成一個(gè)任務(wù)要100毫秒,那么用十個(gè)線程完成改任務(wù)只需10毫秒。Java在語言層面對(duì)多線程提供了卓越的支持,它也是一個(gè)很好的賣點(diǎn)。


  2)線程和進(jìn)程有什么區(qū)別?


  線程是進(jìn)程的子集,一個(gè)進(jìn)程可以有很多線程,每條線程并行執(zhí)行不同的任務(wù)。不同的進(jìn)程使用不同的內(nèi)存空間,而所有的線程共享一片相同的內(nèi)存空間。別把它和棧內(nèi)存搞混,每個(gè)線程都擁有單獨(dú)的棧內(nèi)存用來存儲(chǔ)本地?cái)?shù)據(jù)。


  3)如何在Java中實(shí)現(xiàn)線程?


  在語言層面有兩種方式。java.lang.Thread類的實(shí)例就是一個(gè)線程但是它需要調(diào)用java.lang.Runnable接口來執(zhí)行,由于線程類本身就是調(diào)用的Runnable接口所以你可以繼承java.lang.Thread類或者直接調(diào)用Runnable接口來重寫run()方法實(shí)現(xiàn)線程。


  4)用Runnable還是Thread?


  這個(gè)問題是上題的后續(xù),大家都知道我們可以通過繼承Thread類或者調(diào)用Runnable接口來實(shí)現(xiàn)線程,問題是,那個(gè)方法更好呢?什么情況下使用它?這個(gè)問題很容易回答,如果你知道Java不支持類的多重繼承,但允許你調(diào)用多個(gè)接口。所以如果你要繼承其他類,當(dāng)然是調(diào)用Runnable接口好了。


  6)Thread類中的start()和run()方法有什么區(qū)別?


  這個(gè)問題經(jīng)常被問到,但還是能從此區(qū)分出面試者對(duì)Java線程模型的理解程度。start()方法被用來啟動(dòng)新創(chuàng)建的線程,而且start()內(nèi)部調(diào)用了run()方法,這和直接調(diào)用run()方法的效果不一樣。當(dāng)你調(diào)用run()方法的時(shí)候,只會(huì)是在原來的線程中調(diào)用,沒有新的線程啟動(dòng),start()方法才會(huì)啟動(dòng)新線程。


  7)Java中Runnable和Callable有什么不同?


  Runnable和Callable都代表那些要在不同的線程中執(zhí)行的任務(wù)。Runnable從JDK1.0開始就有了,Callable是在JDK1.5增加的。它們的主要區(qū)別是Callable的call()方法可以返回值和拋出異常,而Runnable的run()方法沒有這些功能。Callable可以返回裝載有計(jì)算結(jié)果的Future對(duì)象。


  8)Java中CyclicBarrier和CountDownLatch有什么不同?


  CyclicBarrier和CountDownLatch都可以用來讓一組線程等待其它線程。與CyclicBarrier不同的是,CountdownLatch不能重新使用。


  9)Java內(nèi)存模型是什么?


  Java內(nèi)存模型規(guī)定和指引Java程序在不同的內(nèi)存架構(gòu)、CPU和操作系統(tǒng)間有確定性地行為。它在多線程的情況下尤其重要。Java內(nèi)存模型對(duì)一個(gè)線程所做的變動(dòng)能被其它線程可見提供了保證,它們之間是先行發(fā)生關(guān)系。這個(gè)關(guān)系定義了一些規(guī)則讓程序員在并發(fā)編程時(shí)思路更清晰。比如,先行發(fā)生關(guān)系確保了:


  線程內(nèi)的代碼能夠按先后順序執(zhí)行,這被稱為程序次序規(guī)則。


  對(duì)于同一個(gè)鎖,一個(gè)解鎖操作一定要發(fā)生在時(shí)間上后發(fā)生的另一個(gè)鎖定操作之前,也叫做管程鎖定規(guī)則。


  前一個(gè)對(duì)volatile的寫操作在后一個(gè)volatile的讀操作之前,也叫volatile變量規(guī)則。


  一個(gè)線程內(nèi)的任何操作必需在這個(gè)線程的start()調(diào)用之后,也叫作線程啟動(dòng)規(guī)則。


  一個(gè)線程的所有操作都會(huì)在線程終止之前,線程終止規(guī)則。


  一個(gè)對(duì)象的終結(jié)操作必需在這個(gè)對(duì)象構(gòu)造完成之后,也叫對(duì)象終結(jié)規(guī)則。


  可傳遞性


  我強(qiáng)烈建議大家閱讀《Java并發(fā)編程實(shí)踐》第十六章來加深對(duì)Java內(nèi)存模型的理解。


  10)Java中的volatile變量是什么?


  volatile是一個(gè)特殊的修飾符,只有成員變量才能使用它。在Java并發(fā)程序缺少同步類的情況下,多線程對(duì)成員變量的操作對(duì)其它線程是透明的。volatile變量可以保證下一個(gè)讀取操作會(huì)在前一個(gè)寫操作之后發(fā)生,就是上一題的volatile變量規(guī)則。


Java線程池的面試題,讓面試更穩(wěn)妥


      以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java線程池的面試題,讓面試更穩(wěn)妥”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


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

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 黄色片免费在线观看 | 波多野结衣一区免费作品 | 成人毛片免费观看视频大全 | 最近最新中文字幕高清免费 | 手机国产看片 | 免费无尽xxx视频 | 伊人日韩 | 一级黄色片欧美 | 欧美国产精品 | 国产精品va在线观看手机版 | 欧美国产在线观看 | 99激情| 日本黄色影片在线观看 | 三级黄色片日韩 | 91精品综合久久久久久五月天 | 欧美黄免在线播放 | 久久不卡免费视频 | 第一页在线观看 | 爱啪啪网站 | 一级黄免费 | 免费国产高清精品一区在线 | 中文字幕日韩在线 | 欧美乱子伦xxxx96 | 国产一级大片 | 女人精aaaa片一级毛片女女 | 国产欧美精品区一区二区三区 | 一区二区三区在线免费视频 | 久播影院免费理论片 | 免费看羞羞视频的网站 | 免费看黄在线观看 | 日本福利片午夜免费观着 | 噜噜噜噜噜色 | 又色又爽又黄的视频网站 | 曰批全过程免费视频网址 | 亚洲欧美啪啪 | free中国性xxxx | 久久激情视频 | 黄色免费在线观看网站 | 国产精品国产三级国产在线观看 | 免费在线日韩 | 日韩一区二区中文字幕 |