文档章节

newCachedThreadPool()可缓存线程池详解,代码示例

满风
 满风
发布于 2016/04/15 17:05
字数 325
阅读 487
收藏 0
package com.dy.pool;

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

/**
 * 在Executors类里面提供了一些静态工厂,生成一些常用的线程池。
 3. newCachedThreadPool
 创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,
 那么就会回收部分空闲(60秒不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线程来处理任务。
 此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。
 */
public class CachedThreadPool {
    public static void main(String[] args) {
        System.out.println("欢迎来到线程世界!");

        //创建一个可重用固定线程数的线程池
        ExecutorService pool = Executors.newCachedThreadPool();
        //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口
        CachedThreadPool.MyThread t1 = new CachedThreadPool().new MyThread("线程实例1");
        CachedThreadPool.MyThread t2 = new CachedThreadPool().new MyThread("线程实例2");
        CachedThreadPool.MyThread t3 = new CachedThreadPool().new MyThread("线程实例3");
        CachedThreadPool.MyThread t4 = new CachedThreadPool().new MyThread("线程实例4");
        //将线程放入池中进行执行
        pool.execute(t1);
        pool.execute(t2);
        pool.execute(t3);
        pool.execute(t4);
        //关闭线程池
        pool.shutdown();
    }

    class MyThread extends Thread {
        public MyThread(){}
        public MyThread(String name){
            super(name);
        }
        @Override
        public void run() {
            System.out.println(this.getName() + "正在执行。。。");
            System.out.println(Thread.currentThread().getName() + "正在执行。。。");
        }
    }
}



© 著作权归作者所有

共有 人打赏支持
满风

满风

粉丝 89
博文 169
码字总数 174060
作品 0
杭州
技术主管
私信 提问
Java的四种线程池的使用,以及自定义线程工厂

四种线程池 四种线程池分别是:newCachedThreadPool、newFixedThreadPool 、newScheduledThreadPool 和newSingleThreadExecutor ,下面对这几个线程池一一讲解。 newCachedThreadPool:可缓存...

编辑之路
01/07
0
0
java四种线程池使用

Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创...

方墨大师
2016/03/01
58
0
Java 四种线程池的用法分析

1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { ).start(); 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差。 ...

7哥
2016/07/07
41
0
Executors创建的4种线程池的使用

Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创...

阿刚ABC
2018/09/30
0
0
asyncTask详解

介绍 android UI是线程不安全的,因此想实现在子线程中刷新UI就需要借助一些机制来实现,一般有两种方法:handler+message;还有一种就是今天我们要讲的asyncTask。asyncTask相对handler+mes...

tomcater
2016/04/19
39
0

没有更多内容

加载失败,请刷新页面

加载更多

都996了,研发效能还是提不出起来,关键在这里

本文作者:何勉 上一篇我们介绍了研发效能提升目标及其度量方法。(本文是阿里“研发效能提升系列”的第2篇,第1篇“研发效能的定义和度量”敬请期待 研发效能的提升必须落实为团队需求、协作...

阿里云云栖社区
5分钟前
0
0
阿里高级技术专家:研发效能的追求永无止境

背景 大约在5年前,也就是2013年我刚加入阿里的时候,那个时候 DevOps 的风刚吹起来没多久,有家公司宣称能够一天发布几十上百次,这意味着相比传统软件公司几周一次的发布来说,他们响应商业...

zhaowei121
16分钟前
1
0
深度解读 | 等保2.0之移动互联安全扩展要求解读

数字经济下,企业的生态核心是应用为核心。随着移动互联网的发展,移动应用已渗透各行各业,与工作、生活息息相关。工信部发布的数据显示,截至2018年8月底,我国市场上监测到的移动应用App...

工作的事
22分钟前
0
0
垃圾收集器

1、哪些内存需要回收? 2、什么时候回收? 3、如何回收? "自动回收" 当需要排查各种内存溢出、内存泄露问题时 当垃圾集成为系统达到更高并发量的瓶颈时 引用计数算法 假设方案一:给对象中添...

恋码之子
22分钟前
0
0
独家解密:阿里大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

阿里云官方博客
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部