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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      想知道

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