线程池

线程池的使用
java里线程池的顶级接口是java.util.concurrent.Executor,但严格意义上讲Executor并不是一个线程池,只是一个执行线程的工具。真正的线程池接口是java.util.concurrent.ExecutorService。
在java.util.concurrent.Executor线程工厂类中提供了一些静态工厂,用于创建线程池。建议使用Executors工程类来创建线程池。

  • public static ExecutorService newFixedThreadPool(int nThreads):返回线程池对象。(创建的是有界线程池,也就是池中的线程个数可以指定最大数量)

获取到一个线程池ExecutorService对象。如何使用?

  • public Future<?> submit(Runnable task):获取线程池中的某一个线程对象,并执行
  • 使用线程池中线程对象的步骤:
    1.使用线程池的工厂类Executors里边提供的静态方法newFixedThreadPool生产一个指定数量的线程池
    2.创建一个类实现Runnable接口,重写run方法
    3.调用ExecutorService中的submit方法,传递线程任务,开启线程,执行run方法
    4.调用ExecutorService中的shutdown方法可以销毁线程池(一般建议不做)
    代码实现如下:
//测试类
       //1.使用线程池的工厂类Executors里边提供的静态方法newFixedThreadPool生产一个指定数量的线程池
        ExecutorService es = Executors.newFixedThreadPool(2);
        //3.调用ExecutorService中的submit方法,传递线程任务,开启线程,执行run方法
        es.submit(new RunnableImpl());
        es.submit(new RunnableImpl());

//实现类
public class RunnableImpl implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"创建了一个线程");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值