久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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)站

      2020全新Java面試題——多線程(一)

      2020全新Java面試題——多線程(一)

      一、并行和并發(fā)有什么區(qū)別?

      并行是指兩個或者多個事件在同一時刻發(fā)生;而并發(fā)是指兩個或多個事件在同一時間間隔發(fā)生。

      并行是在不同實體上的多個事件,并發(fā)是在同一實體上的多個事件。

      并行是在一臺處理器上“同時”處理多個任務(wù),并發(fā)是在多臺處理器上同時處理多個任務(wù)。如hadoop分布式集群。

      所以并發(fā)編程的目標(biāo)是充分的利用處理器的每一個核,以達(dá)到最高的處理性能。

      (相關(guān)視頻教程推薦:java視頻)

      二、線程和進(jìn)程的區(qū)別?

      簡而言之,進(jìn)程是程序運行和資源分配的基本單位,一個程序至少有一個進(jìn)程,一個進(jìn)程至少有一個線程。進(jìn)程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存資源,減少切換次數(shù),從而效率更高。線程是進(jìn)程的一個實體,是cpu調(diào)度和分派的基本單位,是比程序更小的能獨立運行的基本單位。同一進(jìn)程中的多個線程之間可以并發(fā)執(zhí)行。

      三、守護(hù)線程是什么?

      守護(hù)線程(即daemon thread),是個服務(wù)線程,準(zhǔn)確地來說就是服務(wù)其他的線程。

      四、創(chuàng)建線程有哪幾種方式?

      (1)繼承Thread類創(chuàng)建線程類

      定義Thread類的子類,并重寫該類的run方法,該run方法的方法體就代表了線程要完成的任務(wù)。因此把run()方法稱為執(zhí)行體。

      創(chuàng)建Thread子類的實例,即創(chuàng)建了線程對象。

      調(diào)用線程對象的start()方法來啟動該線程。

      (推薦教程:java入門程序)

      (2)通過Runnable接口創(chuàng)建線程類

      定義runnable接口的實現(xiàn)類,并重寫該接口的run()方法,該run()方法的方法體同樣是該線程的線程執(zhí)行體。

      創(chuàng)建 Runnable實現(xiàn)類的實例,并依此實例作為Thread的target來創(chuàng)建Thread對象,該Thread對象才是真正的線程對象。

      調(diào)用線程對象的start()方法來啟動該線程。

      (3)通過Callable和Future創(chuàng)建線程

      創(chuàng)建Callable接口的實現(xiàn)類,并實現(xiàn)call()方法,該call()方法將作為線程執(zhí)行體,并且有返回值。

      創(chuàng)建Callable實現(xiàn)類的實例,使用FutureTask類來包裝Callable對象,該FutureTask對象封裝了該Callable對象的call()方法的返回值。

      使用FutureTask對象作為Thread對象的target創(chuàng)建并啟動新線程。

      調(diào)用FutureTask對象的get()方法來獲得子線程執(zhí)行結(jié)束后的返回值。

      五、說一下 runnable 和 callable 有什么區(qū)別?

      有點深的問題了,也看出一個Java程序員學(xué)習(xí)知識的廣度。

      Runnable接口中的run()方法的返回值是void,它做的事情只是純粹地去執(zhí)行run()方法中的代碼而已;

      Callable接口中的call()方法是有返回值的,是一個泛型,和Future、FutureTask配合可以用來獲取異步執(zhí)行的結(jié)果。

      想知道

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