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

    线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多的资源
    如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间

    线程池:JDK1.5之后提供的

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

    Executors类中的静态方法:
      static ExecutorService newFixedThreadPool(int nThreads)创建一个可重用固定线程数的线程池

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

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


    java.util.concurrent.Executors:线程池接口
      sumbit(Runnale task)用来从线程池中获取线程,调用start方法,执行线程任务
      void shutdown() 关闭销毁线程池的方法
    线程池的使用步骤
      1.使用线程池的工厂类Executors里边提供的静态方法newFixedThreadPool生产一个指定数量的线程池
      2.创建一个类,实现Runnable接口,重写run方法,设置线程任务
      3.调用ExecutorService中的方法sumbit,传递线程任务(实现类),开启线程,执行run方法
      4.调用ExecutorService中的方法shutdown销毁线程池(不建议使用)

    package com.shopping.test;
    
    public class RunnableImplements implements   Runnable{
        //2. 创建一个类,实现Runnable接口,重写run方法,设置线程任务
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName() + "创建一个新的线程");
        }
    }
    package com.shopping.test;
    
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class ThreadPool {
    
        public static void main(String[] args) {
            //1. 使用线程池的工厂类Executors里边提供的静态方法`newFixedThreadPool`生产一个指定数量的线程池
            ExecutorService es = Executors.newFixedThreadPool(2);
            //3. 调用`ExecutorService`中的方法`sumbit`,传递线程任务(实现类),开启线程,执行run方法
            es.submit(new RunnableImplements());
            //线程池会一直开启,除非调用shutdown方法
            //使用完线程之后,会自动把线程归还给任务(实现类),线程可以继续使用
            es.submit(new RunnableImplements());
            es.submit(new RunnableImplements());
    
            //4. 调用`ExecutorService`中的方法shutdown销毁线程池(不建议使用)
            es.shutdown();
        }
    }

    输出:

    pool-1-thread-1创建一个新的线程

    pool-1-thread-1创建一个新的线程

    pool-1-thread-2创建一个新的线程

    "C:Program Filesjdk1.7.0_51injava.exe" "-javaagent:C:Program FilesJetBrainsIntelliJ IDEA 2018.2.4libidea_rt.jar=51850:C:Program FilesJetBrainsIntelliJ IDEA 2018.2.4in" -Dfile.encoding=UTF-8 -classpath "C:Program Filesjdk1.7.0_51jrelibcharsets.jar;C:Program Filesjdk1.7.0_51jrelibdeploy.jar;C:Program Filesjdk1.7.0_51jrelibextaccess-bridge-64.jar;C:Program Filesjdk1.7.0_51jrelibextdnsns.jar;C:Program Filesjdk1.7.0_51jrelibextjaccess.jar;C:Program Filesjdk1.7.0_51jrelibextlocaledata.jar;C:Program Filesjdk1.7.0_51jrelibextsunec.jar;C:Program Filesjdk1.7.0_51jrelibextsunjce_provider.jar;C:Program Filesjdk1.7.0_51jrelibextsunmscapi.jar;C:Program Filesjdk1.7.0_51jrelibextzipfs.jar;C:Program Filesjdk1.7.0_51jrelibjavaws.jar;C:Program Filesjdk1.7.0_51jrelibjce.jar;C:Program Filesjdk1.7.0_51jrelibjfr.jar;C:Program Filesjdk1.7.0_51jrelibjfxrt.jar;C:Program Filesjdk1.7.0_51jrelibjsse.jar;C:Program Filesjdk1.7.0_51jrelibmanagement-agent.jar;C:Program Filesjdk1.7.0_51jrelibplugin.jar;C:Program Filesjdk1.7.0_51jrelib esources.jar;C:Program Filesjdk1.7.0_51jrelib t.jar;F:workspacewyfshopping_backupWebRootWEB-INFclasses;F:workspacewyfshopping_backupWebRootWEB-INFlibjdom.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjson.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjstl.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibmail.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibqrcode.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavacsv.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjson-lib.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibRXTXcomm.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibaspectjrt.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcxf-2.4.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhtmllexer.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjunit-4.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-tx.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivation.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibgson-2.2.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhibernate3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhtmlparser.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjta-1.0.1B.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibokio-1.6.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-aop.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-jms.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-orm.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-web.jar;F:workspacewyfshopping_backupWebRootWEB-INFlib humbelina.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibantlr-2.7.6.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcglib-2.1.3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibdom4j-1.6.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjedis-2.4.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjedis-2.5.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjsoup-1.6.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibservlet-api.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-core.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-jdbc.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-test.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjcifs-1.3.17.jar;F:workspacewyfshopping_backupWebRootWEB-INFliblog4j-1.2.15.jar;F:workspacewyfshopping_backupWebRootWEB-INFlib eethi-3.0.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibokhttp-2.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibokhttp-3.2.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibsitecapturer.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-beans.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibvelocity-1.7.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibwsdl4j-1.6.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibeasydbo-0.9.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibezmorph-1.0.6.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibfilterbuilder.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibimageinfo-1.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavax.jms-1.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-webmvc.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibxstream-1.3.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhttpcore-4.4.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhttpmime-4.5.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibmimepull-1.9.3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibQrcode_swetake.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-context.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibxmlbeans-2.3.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibIKAnalyzer3.2.8.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjoda-time-2.9.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjson_simple-1.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibslf4j-api-1.6.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibslf4j-api-1.7.5.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcprov-jdk14-138.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-io-1.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-lang-2.5.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-pool-1.3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhttpclient-4.5.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavassist-3.3.ga.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjaxen-1.1-beta-4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjersey-guava-2.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFlib utz-1.b.40-jdk5.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibquartz-all-1.6.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibvelocity-1.7-dep.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-codec-1.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-codec-1.6.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-lang3-3.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-pool2-2.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibeasyjf-jweb-0.9.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibehcache-web-2.0.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhamcrest-core-1.3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhk2-api-2.3.0-b05.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjersey-client-2.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjersey-common-2.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjersey-server-2.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFliblucene-core-3.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibpoi-3.13-20150929.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibslf4j-jdk14-1.6.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivemq-web-5.6.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommon-annotations.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-dbcp-1.2.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibehcache-core-2.4.6.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhibernate-3.2.2.ga.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-core-2.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-core-2.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjpush-client-3.2.7.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibxmlschema-core-2.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivemq-core-5.6.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivemq-jaas-5.6.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-lang3-3.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhk2-utils-2.3.0-b05.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavassist-3.18.1-GA.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavax.ws.rs-api-2.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFliblucene-memory-3.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibokio-1.3.0-SNAPSHOT.jar;F:workspacewyfshopping_backupWebRootWEB-INFlib est-java-sdk-1.0.5.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivemq-camel-5.6.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivemq-pool-5.13.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibaspectjweaver-1.6.12.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-digester-1.6.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavax.servlet-5.1.12.jar;F:workspacewyfshopping_backupWebRootWEB-INFliblucene-queries-3.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibqiniu-java-sdk-7.0.7.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivemq-protobuf-1.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibalipay-sdk-java-3.0.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-logging-1.0.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-logging-1.1.3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhibernate-annotations.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhk2-locator-2.3.0-b05.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibactivemq-console-5.6.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-databind-2.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-databind-2.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavax.inject-2.3.0-b05.jar;F:workspacewyfshopping_backupWebRootWEB-INFliblucene-analyzers-3.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFliburlrewritefilter-4.0.3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibavalon-logkit-2.0.dev-0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-collections-1.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhibernate-entitymanager.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavax.persistence_2.0.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibmongo-java-driver-3.8.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibpoi-ooxml-3.13-20150929.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-fileupload-1.2.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcommons-httpclient-3.0.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibehcache-terracotta-2.4.6.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-jaxrs-base-2.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjavax.annotation-api-1.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFliblucene-highlighter-3.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-annotations-2.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-annotations-2.5.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibaliyun-java-sdk-core-3.2.3.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibaliyun-java-sdk-live-2.6.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjersey-media-multipart-2.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibmysql-connector-java-5.0.5.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-security-core-2.0.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibvalidation-api-1.1.0.Final.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibosgi-resource-locator-1.0.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibpoi-ooxml-schemas-3.12-beta1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibhibernate-commons-annotations.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjersey-media-json-jackson-2.9.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibmysql-connector-java-5.1.37-bin.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-data-redis-1.3.0.RELEASE.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-data-redis-1.6.0.RELEASE.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibaopalliance-repackaged-2.3.0-b05.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibspring-security-core-tiger-2.0.4.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-jaxrs-json-provider-2.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjackson-module-jaxb-annotations-2.3.2.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibaliyun-java-sdk-dysmsapi-1.0.0-SANPSHOT.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibgeronimo-j2ee-management_1.1_spec-1.0.1.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibjboss-archive-browsing-5.0.0alpha-200607201-119.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcom.springsource.org.apache.commons.beanutils-1.7.0.jar;F:workspacewyfshopping_backupWebRootWEB-INFlibcom.springsource.org.apache.velocity.tools.view-2.0.0.beta3.jar" com.shopping.test.ThreadPoolpool-1-thread-1创建一个新的线程pool-1-thread-1创建一个新的线程pool-1-thread-2创建一个新的线程
    Process finished with exit code 0

  • 相关阅读:
    ERP类系统设计学习
    人工智能关键词
    系统性能
    连接不同服务器不同数据库
    socket一个例子
    SQLite
    asp.net 页面缓存、数据缓存
    原生js
    Android 网络调试 adb tcpip 开启方法
    C语言中string char int类型转换
  • 原文地址:https://www.cnblogs.com/wyf-love-dch/p/11407403.html
Copyright © 2011-2022 走看看