基于JUC线程池的使用ExecutorService

基于JUC线程池的使用ExecutorService

往往采用多线程目的都是为了提高程序效率,提高系统使用性。但是频繁的创建和销毁线程本身就是一个有损效率的事。所以java的JUC就提供了线程池的使用。
线程池 :提前创建好多个线程放入线程池中,使用时直接获取,使用完成放回线程池。可以避免频繁创建和销毁线程,实现重复利用。
好处:

  • 提高了响应效率(减少了创建线程时间)
  • 降低资源消耗(重复利用线程池里面线程,不再是创建)
  • 便于管理。
    corePoolSize : 核心池大小
    maximumPoolSize : 最大线程数
    keepAliveTime :线程没有任务多久后会停止

JDK5.0起提供了相关线程池API : ExecutorsExecutorService

ExecutorService真正的线程池接口,继承了Executor
常见的实现类 ThreadPoolExecurtor。

  • void executor(Runable runable) 线程池启动线程。(属于Executor类方法)
  • void shutdown() 关闭连接池(ExecutorService接口方法)
    Executors 工具类、线程池的工厂类,用于创建并返回不同类型的线程池。注意区分Executor

在这里插入图片描述

实现步骤

  1. 创建线程池服务
  2. 执行线程

实现:

    // 线程类
    static class ThreadTest implements Runnable{
        public void run() {
            System.out.println(Thread.currentThread().getName()+":执行了");
        }
    }
    
   // 执行类
       public static void main(String[] args) {
        // 创建线程服务,构造线程池为3
        ExecutorService executorService = Executors.newFixedThreadPool(3);
        // 启动线程
        executorService.execute(new ThreadTest());
        executorService.execute(new ThreadTest());
        executorService.execute(new ThreadTest());
        executorService.execute(new ThreadTest());
    }

结果:定义了线程池为3,则4个线程使用线程池中的3个线程。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Survivor001

你可以相信我,如果你愿意的话

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值