`
denghua10
  • 浏览: 73465 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

缓存线程池-newCachedThreadPool

阅读更多
缓存线程池与固定线程池的区别在于对于需要执行很多短期异步任务的程序来说,缓存线程池可以提高程序性能,因为长时间保持空闲的这种类型的线程池不会占用任何资源,调用缓存线程池对象将重用以前构造的线程(线程可用状态),若线程没有可用的,则创建一个新线程添加到池中,缓存线程池将终止并从池中移除60秒未被使用的线程。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class TestCahedThread {
public static void main(String[] args){
ExecutorService exec=Executors.newCachedThreadPool();
for(int index=0;index<10;index++){
  Runnable run=new Runnable(){
public void run(){
long time=(long)(Math.random()*1000);
System.out.println("sleep:"+time+" ss ");
try{
Thread.sleep(time);
}catch (Exception e) {
// TODO: handle exception
}
}   
  };
  exec.execute(run);
  }
  exec.shutdown();
}
}
分享到:
评论

相关推荐

    Java四种线程池的简单介绍.docx

    - `newCachedThreadPool` 创建了一个可缓存线程池,它能够根据当前的处理需求灵活调整线程数量。 - 当线程池中的线程数量超过实际所需时,该线程池可以回收空闲的线程。 - 如果没有足够的可回收线程来处理新的...

    四大线程池的用法实例

    3. **缓存线程池(newCachedThreadPool)** - 创建方法:`Executors.newCachedThreadPool()` - 特点:线程池会缓存线程,如果线程池中的线程在60秒内没有被使用,就会被回收。当需要新线程时,会立即创建新的线程...

    java基础知识多线程线程池讲解和练习

    线程池有多种工作模式,如固定大小线程池(newFixedThreadPool)、单线程池(newSingleThreadExecutor)、可缓存线程池(newCachedThreadPool)和定长线程池(newScheduledThreadPool),每种模式适用于不同的场景。...

    线程池管理源码 java 源码

    线程池是Java多线程编程中...线程池的扩展类`Executors`提供了一些预定义的线程池实现,如单线程池(newSingleThreadExecutor)、定长线程池(newFixedThreadPool)、缓存线程池(newCachedThreadPool)和定时线程池...

    线程池 Executors

    1. 缓存线程池:缓存线程池是Java中的一个特殊的线程池,它可以根据需要动态地创建和销毁线程。缓存线程池的大小没有限制,可以根据需要添加或删除线程。 ```java ExecutorService service = Executors....

    JAVA经典线程池源码

    - 使用`Executors`工厂类创建线程池,如`newFixedThreadPool`创建固定大小的线程池,`newCachedThreadPool`创建缓存线程池等。 - 提交任务到线程池,通过`ExecutorService`的`execute`方法将`Runnable`或`Callable...

    Java 线程池的原理与实现

    - **缓存线程池**:`Executors.newCachedThreadPool()`,根据需要动态创建线程,空闲线程超时后会被回收。 - **定长线程池**:`Executors.newScheduledThreadPool(int corePoolSize)`,支持定时及周期性任务执行。...

    java 线程池常用方法

    - `newCachedThreadPool()`:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 - `newFixedThreadPool(int nThreads)`:创建固定大小的线程池,线程数量始终保持...

    05-Java多线程并发编程JUC.pdf

    - newCachedThreadPool:创建可缓存线程池。 - newScheduledThreadPool:创建一个支持定时及周期性任务执行的线程池。 - newSingleThreadExecutor:创建只有一线程的线程池。 6. 线程中断 Java提供中断机制来...

    线程池管理线程demo

    如`newFixedThreadPool(int nThreads)`创建固定大小的线程池,`newSingleThreadExecutor()`创建只有一个线程的线程池,`newCachedThreadPool()`创建缓存线程池等。每个线程池类型都有其特定的适用场景。 4. **提交...

    JAVA线程池例子

    - `newCachedThreadPool`:可缓存的线程池,会根据需要创建新线程,但空闲线程超过60秒会自动终止。 - `newScheduledThreadPool`:用于定时或延迟执行任务的线程池。 3. **线程池参数详解**: - `corePoolSize`...

    Java中的线程与线程池.pptx

    1. newCachedThreadPool:创建一个可缓存线程池,线程空闲超过指定时间后会被回收,当线程池为空时,会新建线程来处理任务。 2. newSingleThreadExecutor:创建一个单线程线程池,所有任务都在一个线程中顺序执行,...

    安卓,线程池的使用 ,封装

    在Android中,通常推荐使用`Executors`静态工厂方法来创建线程池,如`newFixedThreadPool`用于创建固定大小的线程池,`newCachedThreadPool`用于创建缓存线程池等。然而,直接使用这些预定义的线程池可能无法满足...

    MultiThread_并发_java_线程池_

    3. Executors工具类:提供静态工厂方法,方便快速创建线程池,如newFixedThreadPool()创建固定大小的线程池,newCachedThreadPool()创建缓存线程池。 四、线程池的工作原理 1. 工作队列:线程池中的任务会先放入...

    java线程池源码-java-source:Java源码学习多线程、线程池、集合

    `Executors`工具类提供了创建线程池的便捷方法,如`newFixedThreadPool`创建固定大小的线程池,`newSingleThreadExecutor`创建只有一个线程的线程池,`newCachedThreadPool`创建可缓存线程的线程池等。 了解了这些...

    android(java)四大线程池详解

    - **newCachedThreadPool**:创建一个可缓存线程池。线程池会保存最近闲置的线程,如果需要新线程,会优先复用已存在的线程。如果线程池为空,会新建线程。这可以快速响应任务请求,但可能导致线程数量过多,不适用...

    26_多线程_第1天(Thread、线程创建、线程池)_讲义

    - `newCachedThreadPool()` 创建一个可缓存线程池,线程数量可无限增长。 - `newSingleThreadExecutor()` 创建只有一个线程的线程池,确保所有任务按顺序执行。 使用线程池可以有效地控制并发程度,避免资源过度...

    线程池资源

    - `newCachedThreadPool()`:创建可缓存线程池,无核心线程,最大线程数为Integer.MAX_VALUE,空闲超时为60秒。 - `newScheduledThreadPool(int corePoolSize)`:创建定长线程池,支持定时及周期性任务执行。 2. ...

    java线程池

    - **定义**:`newCachedThreadPool`同样是由`Executors`工具类提供的一个工厂方法,用于创建可缓存的线程池。 - **特点**: - 线程池中的线程数量不固定,可根据需要动态调整; - 当没有任务执行时,空闲的线程会...

    规范使用线程池与底层原理详解.docx

    - `newCachedThreadPool()`创建可缓存线程池,线程数可变,空闲线程超时后会被回收,适合短生命周期的任务。 - `newScheduledThreadPool(int corePoolSize)`创建定长线程池,支持定时及周期性任务,适用于执行定时...

Global site tag (gtag.js) - Google Analytics