日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

判断线程结束

發布時間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 判断线程结束 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

判斷線程結束

  • 使用ExecutorService.isTerminated方式

    public void executor() throws InterruptedException{ExecutorService executorService = Executors.newFixedThreadPool(threadNum);List<Callable<Object>> calls = new ArrayList<>();for (int i = 0; i < threadNum; i++) {int flag = 0 ;while (flag < 10000) {calls.add(new Callable<Object>() {@Overridepublic Object call() throws Exception {int aaa = new Random().nextInt(100);System.out.println(aaa);return aaa;}});flag ++ ;}}executorService.invokeAll(calls);executorService.shutdown();while (true) {if(executorService.isTerminated()){System.out.println("線程已經全部結束");break;}else{System.out.println("線程未全部結束");}Thread.sleep(1000);}System.exit(-1);}

    shutdown

    void shutdown() 啟動一次順序關閉,執行以前提交的任務,但不接受新任務。若已經關閉,則調用沒有其他作用。

    isTerminated

    boolean isTerminated() 若關閉后所有任務都已完成,則返回true。注意除非首先調用shutdown或shutdownNow,否則isTerminated永不為true。返回:若關閉后所有任務都已完成,則返回true。

  • 使用CountDownLatch

    public void start() { System.out.println("開始開始開始開始開始開始");final CountDownLatch countDownLatch = new CountDownLatch(threadNum);ExecutorService executor = Executors.newFixedThreadPool(threadNum);for (int i = 0; i < threadNum; i++) {executor.execute(new Runnable() {@Overridepublic void run() {int j= 3000;while (true) {j--;System.out.println(j);if (j == 0) {System.out.println("結束一個");countDownLatch.countDown();break;}}}});}try {countDownLatch.await();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("結束結束結束結束結束結束結束");System.exit(-1);}

    countDown

    public void countDown()
    遞減鎖存器的計數,如果計數到達零,則釋放所有等待的線程。
    如果當前計數大于零,則將計數減少。如果新的計數為零,出于線程調度目的,將重新啟用所有的等待線程。

    如果當前計數等于零,則不發生任何操作。

    await

    public void await() throws InterruptedException
    使當前線程在鎖存器倒計數至零之前一直等待,除非線程被 中斷。

  • 轉載于:https://www.cnblogs.com/cuiyf/p/7651282.html

    總結

    以上是生活随笔為你收集整理的判断线程结束的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。