Java

java newcachedthreadpool 如何使用

小樊
85
2024-12-03 04:39:06
栏目: 编程语言

newCachedThreadPool 是 Java 中 java.util.concurrent.Executors 类的一个方法,它创建了一个可缓存的线程池。这个线程池在需要时会创建新的线程,但如果线程池的大小超过了处理需要,可缓存的线程会被复用。当任务完成后,线程不会立即销毁,而是返回到线程池中,等待下一个任务。这种线程池适用于任务数量不确定的场景。

以下是使用 newCachedThreadPool 的示例:

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

public class CachedThreadPoolExample {
    public static void main(String[] args) {
        // 创建一个可缓存的线程池
        ExecutorService cachedThreadPool = Executors.newCachedThreadPool();

        // 提交任务到线程池
        for (int i = 0; i < 10; i++) {
            final int taskNumber = i;
            cachedThreadPool.submit(() -> {
                System.out.println("Task " + taskNumber + " is executed by thread " + Thread.currentThread().getName());
                try {
                    // 模拟任务执行耗时
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            });
        }

        // 关闭线程池
        cachedThreadPool.shutdown();
    }
}

在这个示例中,我们创建了一个可缓存的线程池 cachedThreadPool,然后提交了 10 个任务到线程池。每个任务打印出它的编号和执行它的线程名称。任务执行完成后,线程不会立即销毁,而是返回到线程池中,等待下一个任务。最后,我们调用 shutdown() 方法关闭线程池。

0
看了该问题的人还看了