久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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創(chuàng)建多線程總結(jié)

      本篇文章給大家?guī)砹岁P(guān)于java的相關(guān)知識(shí),其中主要總結(jié)介紹了創(chuàng)建多線程的五種方法,包括了繼承Thread類、實(shí)現(xiàn)Runnable接口、實(shí)現(xiàn)Callable接口、繼承TimerTask類和通過線程池啟動(dòng)多線程,希望對大家有幫助。

      五種方法!Java創(chuàng)建多線程總結(jié)

      推薦學(xué)習(xí):《java學(xué)習(xí)教程》

      Java創(chuàng)建多線程的五種方法

      • 僅作為Java編程的交流和學(xué)習(xí),如有問題還望不吝賜教。歡迎補(bǔ)充和交流,轉(zhuǎn)載請注明!

      (一)繼承Thread類

      1.實(shí)現(xiàn)描述

      • 通過繼承Thread并且重寫其run( ),run方法中定義需要執(zhí)行的任務(wù)。創(chuàng)建后的子類通過調(diào)用start( )方法即可執(zhí)行線程方法。
      • 通過繼承Thread實(shí)現(xiàn)的線程類,多個(gè)線程間無法共享線程類的實(shí)例變量。需要?jiǎng)?chuàng)建不同Thread對象,自然不共享資源。

      2.具體步驟

      1)定義UserThread類,繼承Thread類
      2)重寫run( )方法
      3)創(chuàng)建UserThread對象
      4)調(diào)用start( )方法

      3.代碼實(shí)現(xiàn)

      五種方法!Java創(chuàng)建多線程總結(jié)
      五種方法!Java創(chuàng)建多線程總結(jié)
      五種方法!Java創(chuàng)建多線程總結(jié)

      4.注意事項(xiàng)

      • 數(shù)據(jù)資源不共享,多個(gè)線程分別完成自己的任務(wù)。比如三個(gè)售票窗口同時(shí)售票,各自賣各自的票,會(huì)出現(xiàn)三個(gè)售票窗口出售同一張票的問題。

      (二)實(shí)現(xiàn)Runnable接口

      1.實(shí)現(xiàn)描述

      • 需要先定義一個(gè)類實(shí)現(xiàn)Runnable接口并重寫該接口的run( )方法,此run方法是線程執(zhí)行體。接著創(chuàng)建 Runnable實(shí)現(xiàn)類的對象,作為創(chuàng)建Thread對象的參數(shù)target,此Thread對象才是真正的線程對象。
      • 利用實(shí)現(xiàn)Runnable接口的線程類創(chuàng)建對象,可以實(shí)現(xiàn)線程之間的資源共享。

      2.具體步驟

      1)定義一個(gè)UserRun類,實(shí)現(xiàn)Runnble接口
      2)重寫run( )方法
      3)創(chuàng)建UserRun類的對象
      4)創(chuàng)建Thread類的對象,UserRun類的對象作為Thread類構(gòu)造方法的參數(shù)
      5)啟動(dòng)線程

      3.代碼實(shí)現(xiàn)

      五種方法!Java創(chuàng)建多線程總結(jié)
      五種方法!Java創(chuàng)建多線程總結(jié)
      五種方法!Java創(chuàng)建多線程總結(jié)

      4.注意事項(xiàng)

      • 數(shù)據(jù)資源共享,多個(gè)線程共同完成一個(gè)任務(wù)(多個(gè)線程共享了創(chuàng)建線程對象的資源)。比如三個(gè)售票窗口(三個(gè)線程)同時(shí)售票(MyThread類中的ticket),三個(gè)線程共同使用資源。

      (三)實(shí)現(xiàn)Callable接口

      1.實(shí)現(xiàn)描述

      • Callable接口如同Runable接口的升級版,其提供的call( )方法將作為線程的執(zhí)行體,同時(shí)允許有返回值。
      • Callable對象不能直接作為Thread對象的target,因?yàn)镃allable接口是 Java5 新增的接口,不是Runnable接口的子接口。
      • 對于這個(gè)問題的解決方案,就引入 Future接口,此接口可以接受call( )的返回值,RunnableFuture接口是Future接口和Runnable接口的子接口,可以作為Thread對象的target。

      2.具體步驟

      1)定義類UserCallable,實(shí)現(xiàn)Callable接口
      2)重寫call( )方法
      3)創(chuàng)建UserCallable的對象
      4)創(chuàng)建RunnableFuture接口的子類FutureTask的對象,構(gòu)造函數(shù)的參數(shù)是UserCallable的對象
      5)創(chuàng)建Thread類的對象,構(gòu)造函數(shù)的參數(shù)是FutureTask的對象
      6)啟動(dòng)線程

      3.代碼實(shí)現(xiàn)

      五種方法!Java創(chuàng)建多線程總結(jié)
      五種方法!Java創(chuàng)建多線程總結(jié)
      五種方法!Java創(chuàng)建多線程總結(jié)

      4.注意事項(xiàng)

      • 數(shù)據(jù)資源共享,多個(gè)線程共同完成一個(gè)任務(wù)(多個(gè)線程共享了創(chuàng)建線程對象的資源)。比如三個(gè)售票窗口(三個(gè)線程)同時(shí)售票(MyThread類中的ticket),三個(gè)線程共同使用資源。同時(shí),線程調(diào)用完畢后還會(huì)帶有返回值。

      (四)繼承TimerTask類

      1.實(shí)現(xiàn)描述

      • 定時(shí)器類Timer和TimerTask可以做為實(shí)現(xiàn)線程的另一種方式。
      • Timer是一種線程設(shè)施,用于安排以后在后臺(tái)線程中執(zhí)行的任務(wù)??砂才湃蝿?wù)執(zhí)行一次,或者定期重復(fù)執(zhí)行,可以看成一個(gè)定時(shí)器,可以調(diào)度TimerTask。
      • TimerTask是一個(gè)抽象類,實(shí)現(xiàn)了Runnable接口,所以具備了多線程的能力。

      2.具體步驟

      1)定義類UserTimerTask,繼承抽象類TimerTask
      2)創(chuàng)建UserTask類的對象
      3)創(chuàng)建Timer類的對象,設(shè)置任務(wù)的執(zhí)行策略

      3.代碼實(shí)現(xiàn)

      五種方法!Java創(chuàng)建多線程總結(jié)
      五種方法!Java創(chuàng)建多線程總結(jié)

      五種方法!Java創(chuàng)建多線程總結(jié)

      4.注意事項(xiàng)

      • 定時(shí)器類創(chuàng)建線程
      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)