Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java线程池参数

作者:潮起潮落   发布日期:2025-04-01   浏览:47

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class ThreadPoolExample {
    public static void main(String[] args) {
        // 创建一个固定大小的线程池,线程数为5
        ExecutorService executor = Executors.newFixedThreadPool(5);

        // 将线程池转换为ThreadPoolExecutor以便获取更多参数信息
        ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;

        // 打印线程池的一些参数
        System.out.println("Core Pool Size: " + threadPoolExecutor.getCorePoolSize());
        System.out.println("Maximum Pool Size: " + threadPoolExecutor.getMaximumPoolSize());
        System.out.println("Active Threads: " + threadPoolExecutor.getActiveCount());
        System.out.println("Completed Tasks: " + threadPoolExecutor.getCompletedTaskCount());

        // 提交任务到线程池
        for (int i = 0; i < 10; i++) {
            executor.submit(() -> {
                try {
                    System.out.println("Executing task in thread: " + Thread.currentThread().getName());
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                }
            });
        }

        // 关闭线程池
        executor.shutdown();
        try {
            if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
                executor.shutdownNow();
            }
        } catch (InterruptedException e) {
            executor.shutdownNow();
        }
    }
}

解释说明

  1. 创建线程池:

    • 使用 Executors.newFixedThreadPool(5) 创建了一个固定大小为5的线程池。
  2. 获取线程池参数:

    • ExecutorService 转换为 ThreadPoolExecutor 以访问更多的线程池参数,如核心线程数、最大线程数、活跃线程数和已完成任务数。
  3. 提交任务:

    • 使用 executor.submit() 方法提交了10个任务到线程池中。每个任务在执行时会打印当前线程名称,并休眠2秒模拟任务处理时间。
  4. 关闭线程池:

    • 使用 executor.shutdown() 方法关闭线程池,并使用 awaitTermination() 等待所有任务完成。如果超过指定时间仍未完成,则调用 shutdownNow() 强制关闭线程池。

上一篇:java string判断包含字符

下一篇:java string 转 list

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站