最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 判斷線程池所有任務是否執(zhí)行完畢的操作

 更新時間:2020年08月20日 11:35:17   作者:ponhjl  
這篇文章主要介紹了Java 判斷線程池所有任務是否執(zhí)行完畢的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

import java.util.concurrent.ExecutorService; 
import java.util.concurrent.Executors; 
 
public class Test { 
  public static void main(String args[]) throws InterruptedException { 
    ExecutorService exe = Executors.newFixedThreadPool(3); 
    for (int i = 1; i <= 5; i++) { 
      exe.execute(new SubThread(i)); 
    } 
    exe.shutdown(); 
    while (true) { 
      if (exe.isTerminated()) { 
        System.out.println("結束了!"); 
        break; 
      } 
      Thread.sleep(200); 
    } 
  } 
} 

上面是主線程的代碼,創(chuàng)建了一個能同時執(zhí)行2個線程的線程池,并投入5個線程,當5個線程都執(zhí)行完畢后打印---“結束了!”字符串。

exe.shutdown();該方法在加入線程隊列的線程執(zhí)行完之前不會執(zhí)行。exe.isTerminated()當shutdown()或者shutdownNow()執(zhí)行了之后才會執(zhí)行,并返回true。

在上面的代碼中必須有exe.isTerminated()的判斷,否則在投入5個線程到線程池后會直接打?。骸敖Y束了”。不能達到我們想要的效果。

通過while(true)循環(huán)判斷exe.isTerminated()的值,為了防止過多的判斷浪費資源,可設置線程睡眠Thread.sleep(200);正是由于這個睡眠,所以當所有線程池中的線程都執(zhí)行完后,有可能延遲200ms才執(zhí)行"結束了"語句。這個參數(shù)越小延遲越小,結果越準確。

下面是子線程,子線程只是簡單的將數(shù)字i打印出來;

public class SubThread extends Thread{ 
  private final int i; 
  public SubThread(int i){ 
    this.i = i; 
  } 
  @Override 
  public void run(){ 
    System.out.println(i); 
  } 
}

執(zhí)行結果:

3

1

4

5

2

結束了!

成功構建 (總時間: 2 秒)

子線程執(zhí)行順序不能控制,所以輸出的結果是亂序的。

補充知識:java如何禁掉反射

SecurityManager

有一個checkMemberAccess這個方法可以阻止利用反射;

如:

SecurityManager sm = new SecurityManager();

sm.checkMemberAccess(Test.class, Member.PUBLIC);

前面一個為CLASS,后面需要填一個INT值,Member.PUBLIC 代表可以訪問,

如果是PUBLIC,反射可以執(zhí)行,DECLARED,反射運行時,會報錯。

SecurityManager另外一個例子:

package com.jd.basic.pk.manager;
import java.lang.reflect.Field;
import java.security.Permission;

public class UseReflection {
  static {
    try {
      System.setSecurityManager(new MySecurityManager());
    } catch (SecurityException se) {
      System.out.println("SecurityManager already set!");
    }
  }

  public static void main(String args[]) {
    Object prey = new Prey();
    try {
      Field pf = prey.getClass().getDeclaredField("privateString");
      pf.setAccessible(true);
      pf.set(prey, "Aminur test");
      System.out.println(pf.get(prey));
    } catch (Exception e) {
      System.err.println("Caught exception " + e.toString());
    }
  }
}

class Prey {
  @SuppressWarnings("unused")
  private String privateString = "privateValue";
}

class MySecurityManager extends SecurityManager {
  public void checkPermission(Permission perm) {
    if (perm.getName().equals("suppressAccessChecks")) {
      throw new SecurityException("Can not change the permission dude.!");
    }
  }
}

以上這篇Java 判斷線程池所有任務是否執(zhí)行完畢的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java中的runnable 和 callable 區(qū)別解析

    Java中的runnable 和 callable 區(qū)別解析

    Runnable接口用于定義不需要返回結果的任務,而Callable接口可以返回結果并拋出異常,通常與Future結合使用,Runnable適用于簡單的后臺任務和定時任務,而Callable適用于并行計算、異步操作和復雜任務,選擇使用哪個接口取決于具體的應用場景,感興趣的朋友一起看看吧
    2025-03-03
  • Java自動釋放鎖的三種實現(xiàn)方案

    Java自動釋放鎖的三種實現(xiàn)方案

    在筆者面試過程時,經(jīng)常會被問到各種各樣的鎖,如樂觀鎖、讀寫鎖等等,非常繁多,下面這篇文章主要給大家介紹了關于Java自動釋放鎖的三種實現(xiàn)方案,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Windows下Java調(diào)用可執(zhí)行文件代碼實例

    Windows下Java調(diào)用可執(zhí)行文件代碼實例

    這篇文章主要介紹了Windows下Java調(diào)用可執(zhí)行文件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 利用mysql實現(xiàn)的雪花算法案例

    利用mysql實現(xiàn)的雪花算法案例

    這篇文章主要介紹了利用mysql實現(xiàn)的雪花算法案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java實現(xiàn)打字游戲

    Java實現(xiàn)打字游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)打字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • SpringBoot請求發(fā)送與信息響應匹配實現(xiàn)方法介紹

    SpringBoot請求發(fā)送與信息響應匹配實現(xiàn)方法介紹

    這篇文章主要介紹了SpringBoot請求發(fā)送與信息響應匹配實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • Java的synchronized關鍵字深入解析

    Java的synchronized關鍵字深入解析

    這篇文章主要介紹了Java的synchronized關鍵字深入解析,在并發(fā)編程中,多線程同時并發(fā)訪問的資源叫做臨界資源,當多個線程同時訪問對象并要求操作相同資源時,分割了原子操作就有可能出現(xiàn)數(shù)據(jù)的不一致或數(shù)據(jù)不完整的情況,需要的朋友可以參考下
    2023-12-12
  • Java使用HttpClient實現(xiàn)文件下載

    Java使用HttpClient實現(xiàn)文件下載

    這篇文章主要為大家詳細介紹了Java使用HttpClient實現(xiàn)文件下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • java截取圖片示例

    java截取圖片示例

    這篇文章主要介紹了java截取圖片示例,把代碼中的圖片路徑改成自己的圖片,運行就可以看到效果了,需要的朋友可以參考下
    2014-03-03
  • Java AbstractMethodError原因案例詳解

    Java AbstractMethodError原因案例詳解

    這篇文章主要介紹了Java AbstractMethodError原因案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

临武县| 称多县| 项城市| 徐水县| 华安县| 朝阳区| 山东省| 濮阳市| 安化县| 望奎县| 额尔古纳市| 大邑县| 阳信县| 安达市| 博客| 普格县| 金湖县| 汉沽区| 红桥区| 双桥区| 司法| 定安县| 珲春市| 饶河县| 永德县| 吉水县| 伊吾县| 东阿县| 龙陵县| 乌兰察布市| 嘉黎县| 肃宁县| 栾川县| 稻城县| 晋州市| 阿拉善左旗| 文登市| 化州市| 江门市| 普格县| 建始县|