久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      java經(jīng)典面試題集錦(四)

      java經(jīng)典面試題集錦(四)

      一、反射機(jī)制的應(yīng)用場(chǎng)景

      (相關(guān)教程推薦:java面試題)

      1. 逆向代碼 ,例如反編譯

      2. 與注解相結(jié)合的框架 例如Retrofit

      3. 單純的反射機(jī)制應(yīng)用框架 例如EventBus 2.x

      4. 動(dòng)態(tài)生成類(lèi)框架 例如Gson

      二、什么是多線程?

      多線程,是指從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù)。 在一個(gè)程序中,這些獨(dú)立運(yùn)行的程序片段叫作“線程”,利用它編程的概念就叫作“多線程處理”。

      具有多線程能力的計(jì)算機(jī)因有硬件支持而能夠在同一時(shí)間執(zhí)行多于一個(gè)線程,進(jìn)而提升整體處理性能。

      java經(jīng)典面試題集錦(四)

      主線程就是創(chuàng)建進(jìn)程中產(chǎn)生的第一個(gè)線程,也就是main函數(shù)對(duì)應(yīng)的線程。

      (推薦學(xué)習(xí):java入門(mén)程序)

      三、說(shuō)一下多線程的好處?

      1、多線程的優(yōu)點(diǎn)

      • 創(chuàng)建一個(gè)新線程的代價(jià)要比創(chuàng)建一個(gè)新進(jìn)程小的多

      • 線程之間的切換相較于進(jìn)程之間的切換需要操作系統(tǒng)做的工作很少

      • 線程占用的資源要比進(jìn)程少很多

      • 能充分利用多處理器的可并行數(shù)量

      • 等待慢速 IO操作結(jié)束以后,程序可以執(zhí)行其他的計(jì)算任務(wù)

      • 計(jì)算(CPU)密集型應(yīng)用,為了能在多處理器系統(tǒng)上運(yùn)行,將計(jì)算分解到多個(gè)線程中實(shí)現(xiàn)

      • IO密集型應(yīng)用,為了提高性能,將IO操作重疊,線程可以等待不同的IO操作。

      2、多線程的缺點(diǎn)

      • 性能損失( 一個(gè)計(jì)算密集型線程是很少被外部事件阻塞的,無(wú)法和其他線程共享同一個(gè)處理器,當(dāng)計(jì)算密集型的線程的數(shù)量比可用的處理器多,那么就有可能有很大的性能損失,這里的性能損失是指增加了額外的同步和調(diào)度開(kāi)銷(xiāo),二可用資源不變。)

      • 健壯性降低(線程之間是缺乏保護(hù)性的。在一個(gè)多線程程序里,因?yàn)闀r(shí)間上分配的細(xì)微差距或者是共享了一些不應(yīng)該共享的變量而造成不良影響的可能影響是很大的。)

      • 缺乏訪問(wèn)控制( 因?yàn)檫M(jìn)程是訪問(wèn)控制的基本粒度,在一個(gè)線程中調(diào)用某些OS函數(shù)會(huì)對(duì)整個(gè)進(jìn)程造成影響 。)

      • 編程難度提高(編寫(xiě)和 調(diào)試一個(gè)多線程程序比單線程困難的多。)

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

      1、調(diào)度

      進(jìn)程是操作系統(tǒng)分配資源的一個(gè)基本單位。線程是 CPU調(diào)度的基本單位。

      2、并發(fā)性

      引入線程之后,不僅進(jìn)程之間是可以并發(fā)執(zhí)行的,而且在一個(gè)進(jìn)程之中的多個(gè)線程也是 可以并發(fā)執(zhí)行的,甚至是允許一個(gè)進(jìn)程中 的全部進(jìn)程并發(fā)執(zhí)行。

      同樣,不同的進(jìn)程中的線程也是可以并發(fā)執(zhí)行的。使得OS有 更好的并發(fā)性,提高了資源的利用率和系統(tǒng)吞吐量。

      3、擁有資源

      進(jìn)程可以擁有資源,并且是系統(tǒng)擁有資源的基本單位 。線程本身并不擁有系統(tǒng)資源,僅有一些能保證獨(dú)立運(yùn)行 的資源,這塊資源的各個(gè)線程私有的。

      例如,線程ID、一組寄存器、棧、errno、信號(hào)屏蔽字(一個(gè)進(jìn)程中pending信號(hào)只有一個(gè),但是任意一個(gè)線程都可以處理這個(gè)信號(hào))、調(diào)度優(yōu)先級(jí)。

      4、獨(dú)立性

      在同一進(jìn)程中線程的獨(dú)立性要比在不同的進(jìn)程中獨(dú)立性要低很多 。

      5、系統(tǒng)開(kāi)銷(xiāo)

      線程切換的開(kāi)銷(xiāo)低于進(jìn)程切換的開(kāi)銷(xiāo),

      6、支持多處理機(jī)系統(tǒng)

      對(duì)于傳統(tǒng)的進(jìn)程,也就是單線程進(jìn)程 ,不管有多少個(gè)處理機(jī),進(jìn)程只能運(yùn)行在同一個(gè) 處理機(jī)上面,但對(duì)于多線程進(jìn)程,就可以將一個(gè)進(jìn)程中的多個(gè)線程分配到多個(gè)處理機(jī)上面,使其并發(fā)執(zhí)行,加速了進(jìn)程的完成。

      (視頻教程推薦:java視頻教程)

      五、進(jìn)程和線程的應(yīng)用場(chǎng)景

      java經(jīng)典面試題集錦(四)

      • 需要頻繁創(chuàng)建銷(xiāo)毀優(yōu)先使用線程。

      • 需要大量計(jì)算的優(yōu)先使用線程。

      • 相關(guān)性較強(qiáng)的使用線程,相關(guān)性較弱使用進(jìn)程。

      • 可能要擴(kuò)展到多機(jī)分布使用進(jìn)程,多核分布使用線程。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)