java创建线程池进行简单的多线程操作

JDK 1.8版本

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
public static void main(String[] args) {
    
    
        // 获取线程池
        ExecutorService executorService = Executors.newSingleThreadExecutor();

        HashMap<String, String> stringStringHashMap = new HashMap<>();

        // stringStringHashMap.put("1","1");
        // stringStringHashMap.put("2","2");
        // stringStringHashMap.put("3","3");

        // 多线程操作
        CompletableFuture.allOf(
                CompletableFuture.runAsync(()->{
    
    
                    int i = 0;
                    stringStringHashMap.put("好1","1");
                    try {
    
    
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
    
    
                        e.printStackTrace();
                        i++;
                    } finally {
    
    
                        if(i > 0){
    
    
                            System.out.println("出错了!");
                        }else {
    
    
                            System.out.println("执行成功!");
                        }

                    }
                },executorService),
                CompletableFuture.runAsync(()->{
    
    
                    stringStringHashMap.put("的2","2");
                },executorService),
                CompletableFuture.runAsync(()->{
    
    
                    stringStringHashMap.put("吗3","3");
                },executorService)
        ).join();

        System.out.println(stringStringHashMap);
        // 获取处理器线程数
        System.out.println(Runtime.getRuntime().availableProcessors());
        // 查看当前线程数
        System.out.println(ForkJoinPool.commonPool().getPoolSize());
        // 查看最大线程数
        System.out.println(ForkJoinPool.getCommonPoolParallelism());
        // 关闭线程池
        executorService.shutdown();
    }

猜你喜欢

转载自blog.csdn.net/qq_19320227/article/details/127569838
今日推荐