zoukankan      html  css  js  c++  java
  • Atitit.java线程池使用总结attilax 1.1. 动态更改线程数量 1 1.2. code 1 三、线程池的原理 其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下

    Atitit.java线程池使用总结attilax

    1.1. 动态更改线程数量 1

    1.2. code 1

    三、线程池的原理

    其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。

    四、Java线程池

    java关于线程池的主要内容有:

    接口:ExecutorExecutorServiceScheduledExecutorServiceCompletionService

    类:ExecutorsAbstractExecutorServiceThreadPoolExecutorScheduledThreadPoolExecutorExecutorCompletionService

    以上这些,我不可能一一介绍,这里只介绍重要的两个类ExecutorsThreadPoolExecutor

    2. Executors

    虽然通过ThreadPoolExecutor可以完成线程池的创建,但是创建过程复杂繁琐,要求程序员对于每一个参数的意义都很清楚,对于创建的流程也必须十分了解,而通过Executors则可以大大简化线程池的创建过程,因此强烈建议程序员使用较为方便的 Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收)、Executors.newFixedThreadPool(int)(固定大小线程池)和 Executors.newSingleThreadExecutor()(单个后台线程),它们均为大多数使用场景预定义了设置。否则,在手动配置和调整此类时,使用以下指导:

    1.1. 动态更改线程数量

    在大多数情况下,核心和最大池大小仅基于构造来设置,不过也可以使用 setCorePoolSize(int) setMaximumPoolSize(int) 进行动态更改。

     

    1.2. code

     

    ExecutorService ExecutorService1_theardpool = Executors.newFixedThreadPool(20);

    ExecutorService1_theardpool.submit(new Runnable() {

    @Override

    public void run() {

    createTask(wechatPicLmt, targetDir, strPath_final, cur_f);

    }

    }); // end sumbit

    java线程池简介 - 鹏霄万里展雄飞 - 博客频道 - CSDN.NET.html

    自定义线程工厂 - Jackson Zhang - 博客频道 - CSDN.NET.html

    Java多线程之-----实现自己的ThreadFactory - 技术是我的毕生追求 - 博客频道 - CSDN.NET.html

    java线程池简介 - 鹏霄万里展雄飞 - 博客频道 - CSDN.NET.html

  • 相关阅读:
    C#中任意类型数据转成JSON格式
    数据库用户映射到SQL Server登录名
    浅述WinForm多线程编程与Control.Invoke的应用
    Git错误一例
    提高VS2010/VS2012编译速度
    给有兴趣、有责任要讲课、分享的朋友推荐两本书
    中国剩余定理
    中国剩余定理
    洛谷1546 最短网路
    洛谷1111 修复公路
  • 原文地址:https://www.cnblogs.com/attilax/p/15197698.html
Copyright © 2011-2022 走看看