zoukankan      html  css  js  c++  java
  • 线程池

    线程池JDK1.5之后提供的

    java.util.concurrent.Executors:线程池的工厂类,用来生成线程池

    Executors有个静态方法:

    static ExecutorService newFixedThreadPool(int nThreads)
              创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。

    参数:

    int nThreads:创建线程池中包含的线程数量

    返回值:

       ExecutorService接口,返回的是ExecutorSerive接口的实现类对象,我们可以使用ExcutorService接口接收(面向接口编程)

    ava.util.concurrent.ExecutorService:线程池接口

             用来从线程池中获取线程,调用Start方法,执行线程任务

              submit(Runnable task, T result)   提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。

             关闭/销毁线程池的方法:

                                       void shutdown()

    线程池的使用步骤:

    1.使用线程池的工厂类Executors里边提供的静态方法newFixedThreadPool生产一个指定线程数量的线程池

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

    3.调用ExecutorService中的方法submit,传递线程任务(实现类),开启线程,执行run方法

    4.调用ExecutorService中的方法shutdown销毁线程(不建议使用)

    import java.util.concurrent.Executor;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class Demo01ThreadPool {
        public static void main(String[] args) {
            ExecutorService es= Executors.newFixedThreadPool(2);
            es.submit(new RunableImpl());
            es.submit(new RunableImpl());
            es.submit(new RunableImpl());
    
            es.shutdown();//不建议使用
    
        }
    }
    public class RunableImpl implements Runnable{
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName()+"创建了一个新的线程");
        }
    }
  • 相关阅读:
    关于数据仓库的数据模型的思考
    西影寺的由来
    机器能像人一样思考吗?人工智能(一)机器学习和神经网络
    手机摄影超越单反?触手可及的AI让每个人成为专业摄影师!
    Flower
    Backpropagation算法 (转
    Spring Data JPA:解析CriteriaQuery
    Spring Data JPA:解析CriteriaBuilder
    Spring Data JPA:解析JpaSpecificationExecutor & Specification
    Spring Data JPA:解析SimpleJpaRepository
  • 原文地址:https://www.cnblogs.com/cy2268540857/p/13742673.html
Copyright © 2011-2022 走看看