在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    創(chuàng)建線程的6種方式,用Lambda表達(dá)式你絕對沒用過

    整理不易求關(guān)注[送心]

    通過繼承 Thread 類

    繼承Thread類,重新run方法

    public class Test extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { Test test1 = new Test(); Test test2 = new Test(); test1.start(); test2.start(); }}

    通過實現(xiàn) Runnable 接口

    實現(xiàn)Runnable接口,重寫run方法

    public class Test implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { Thread thread1 = new Thread(new Test()); Thread thread2 = new Thread(new Test()); thread1.start(); thread2.start(); }}

    通過實現(xiàn) Callable 接口

    通過實現(xiàn)Callable接口,重寫call方法,配合FutureTask,可以得到異步執(zhí)行的結(jié)果。

    public class Test implements Callable { @Override public Object call() throws Exception { return Thread.currentThread().getName(); } public static void main(String[] args) throws ExecutionException, InterruptedException { FutureTask futureTask = new FutureTask(new Test()); Thread thread = new Thread(futureTask,”線程名稱”); thread.start(); // 得到異步執(zhí)行結(jié)果 System.out.println(futureTask.get()); }}

    通過Lambda表達(dá)式方式

    直接使用Lambda表達(dá)式方式創(chuàng)建多線程,不需要繼承或者實現(xiàn)類。(看起來很酷[綠帽子])

    public class Test { public static void main(String[] args) { Runnable runnable = () -> { System.out.println(Thread.currentThread().getName()); }; new Thread(runnable).start(); }}

    通過內(nèi)部類方式

    public class Test { public static void main(String[] args) { // 1. new Thread() { @Override public void run() { System.out.println(Thread.currentThread().getName()); } }.start(); // 2. new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()); } }).start(); // 3. new Thread(()->{ System.out.println(Thread.currentThread().getName()); }).start(); }}

    通過線程池方式

    提供四種創(chuàng)建線程池的方式:

    • 定長線程池
    • 緩存線程池
    • 單線程池
    • 調(diào)度線程池

    public class Test { public static void main(String[] args) { // 定長線程池,固定線程總數(shù) ExecutorService executorService1 = Executors.newFixedThreadPool(10); // 可緩存線程池,無限大,如果線程池沒有可用線程就會自動創(chuàng)建,有的話就自動利用起來 ExecutorService executorService2 = Executors.newCachedThreadPool(); // 單線程池 ExecutorService executorService3 = Executors.newSingleThreadExecutor(); // 調(diào)度線程池 ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(10); }}

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月22日 15:23
    下一篇 2022年6月22日 15:23

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息