ThreadPool线程池

ThreadPool

原理
在这里插入图片描述
在jdk1.5之后提供的
java.util.concurrent
Class Executors:线程池的工厂类,用来生成线程池
Executors的静态方法
static ExecutorService newFixedThreadPool(int nThreads)
创建一个线程池,该线程池重用固定数量的从共享无界队列中运行的线程。

  • 参数 int nThreads 创建线程池中包含的线程数量
  • 返回值:ExecutorService是一个接口的实现类对象,我们可以使用ExecutorService接口接收(面向接口编程)
    java.util.concurrent
    Interface ExecutorService提供了一个方法:
    用来从线程池中获取线程,调用start方法,执行线程任务
    Future<?> submit(Runnable task)
    提交一个可运行的任务执行,并返回一个表示该任务的未来。
    关闭/销毁线程池的方法
    void shutdown()
    启动有序关闭,其中先前提交的任务将被执行,但不会接受任何新任务。
    线程池的使用步骤
  • 1.使用线程池的工厂类Executors里面提供的静态方法newFixedThreadPool(int nThreads)生产一个指定的线程数量的线程池
  • 2.创建一个类,实现Runnable接口,重写run方法,设置线程任务
  • 3.调用Executorservice中的方法sumbit,传递线程任务(实现类)开启线程,执行run方法
  • 4.调用Executorservice的shutdown()方法销毁线程池(不建议执行)

创建一个类,实现Runnable接口,重写run方法,设置线程任务

代码:

public class RunnableImpl implements Runnable {
@Override
public void run() {
    System.out.println(Thread.currentThread().getName()+"创建了一个新的线程");
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
}

测试代码:

public class Demo01ThreadPool {
public static void main(String[] args) {
    //1.使用线程池的工厂类Executors里面提供的静态方法newFixedThreadPool(int nThreads)生产一个指定的线程数量的线程池
    ExecutorService es = Executors.newFixedThreadPool(2);//为了更好的看清线程池的运行状态,在线程中调用sleep方法,使得每个线程执行超过5秒,不会立即释放线程资源
    //3.调用Executorservice中的方法sumbit,传递线程任务(实现类)开启线程,执行run方法
    es.submit(new RunnableImpl());//pool-1-thread-1创建了一个新的线程
    //线程池会一直开启,使用完了线程,就会自动把线程归还给线程池,线程继续执行
    es.submit(new RunnableImpl());//pool-1-thread-2创建了一个新的线程
    es.submit(new RunnableImpl());//pool-1-thread-1创建了一个新的线程
    es.submit(new RunnableImpl());//pool-1-thread-2创建了一个新的线程
    //4.调用Executorservice的shutdown()方法销毁线程池(不建议执行)
   /* es.shutdown();
    es.submit(new RunnableImpl());//抛出异常了,原因线程池没了!*/
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值