Executors提供四种线程池

Java通过Executors提供四种线程池,分别为:

  • newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需求,可以灵活回收空闲线程,若无可回收则新建线程
  • newFixedThreadPool创建一个定长线程池,可以控制线程最大并发数,超过的线程会在队列中等待
  • newScheduledThreadPool创建一个定长线程池,支持定时及周期性任务执行
  • newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序执行

newCachedThreadPool

ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
cachedThreadPool.execute(new Runnable() {
    @Override
    public void run() {
        //do something
    }
});

newFixedThreadPool

ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
fixedThreadPool.execute(new Runnable() {
    @Override
    public void run() {
        //do something
    }
});

newScheduledThreadPool

//延迟三秒执行
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.schedule(new Runnable() {
    @Override
    public void run() {
        //do something
    }
}, 3, TimeUnit.SECONDS);

//表示延迟1秒后每隔3秒钟执行一次
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        //do something
    }
}, 1, 3, TimeUnit.SECONDS);

newSingleThreadExecutor

ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
singleThreadExecutor.execute(new Runnable() {
    @Override
    public void run() {
        //do something
    }
});
上一篇 schedule方法和scheduleAtFixedRate方法的区别
下一篇 JSON Web Token(JWT)原理和用法介绍
目录
文章列表
1 Flutter接入Facebook和Google等三方登录
Flutter接入Facebook和Google等三方登录
2
Android WebView内所有请求实现自定义Header
Android WebView内所有请求实现自定义Header
3
深入理解JVM的核心知识点
深入理解JVM的核心知识点
4
Python Selenium定位一组元素
Python Selenium定位一组元素
5
NodeJS crypto加密
NodeJS crypto加密
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。