久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

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

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

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

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

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

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

      4. 動態(tài)生成類框架 例如Gson

      二、什么是多線程?

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

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

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

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

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

      三、說一下多線程的好處?

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

      • 創(chuàng)建一個新線程的代價要比創(chuàng)建一個新進程小的多

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

      • 線程占用的資源要比進程少很多

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

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

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

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

      2、多線程的缺點

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

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

      • 缺乏訪問控制( 因為進程是訪問控制的基本粒度,在一個線程中調(diào)用某些OS函數(shù)會對整個進程造成影響 。)

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

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

      1、調(diào)度

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

      2、并發(fā)性

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

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

      3、擁有資源

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

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

      4、獨立性

      在同一進程中線程的獨立性要比在不同的進程中獨立性要低很多 。

      5、系統(tǒng)開銷

      線程切換的開銷低于進程切換的開銷,

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

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

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

      五、進程和線程的應(yīng)用場景

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

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

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

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

      • 可能要擴展到多機分布使用進程,多核分布使用線程。

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