亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

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

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

    一、反射機制的應用場景

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

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

    2. 與注解相結合的框架 例如Retrofit

    3. 單純的反射機制應用框架 例如EventBus 2.x

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

    二、什么是多線程?

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

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

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

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

    (推薦學習:java入門程序)

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

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

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

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

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

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

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

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

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

    2、多線程的缺點

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

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

    • 缺乏訪問控制( 因為進程是訪問控制的基本粒度,在一個線程中調(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視頻教程)

    五、進程和線程的應用場景

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

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

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

    • 相關性較強的使用線程,相關性較弱使用進程。

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

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