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

    1. Java并发
      • 对线程,对项目的一种优化
    2. 什么是线程池?
      • 池化思想:线程池、字符串常量值、数据库连接池。
    3. 使用线程池的步骤
      • 手动创建线程池对象
      • 执行任务
      • 执行完毕,释放线程对象
    4. 线程池优点
      • 优:提高线程的利用率,提高程序的响应速度,便于统一管理线程对象,可以控制最大的并发数。
        • 通过设置线程池的参数,控制线程池的容量,进而控制系统的最大并发量。
    5. 画图解释
      • 系统层面解释

      • 举个生活中的例子解释 ----》银行办理业务。

    6. 代码展示实现。

    import org.junit.Test;
    
    import java.util.concurrent.*;
    
    public class ThreadPoolTest {
    
        @Test
        public void ThreadPool() {
            //1、JUC工具包给我们提供了这样的一个类, 通过这个类, 可以直接创建线程池对象
            //2、其中一共有7个参数,①核心线程池数,②最大线程数,③存活时间 多长时间没有接到任务, 就可以下班回家了,④时间单位(秒),⑤等待队列,⑥线程工厂,⑦拒绝策略(直接抛异常的方式)
            ExecutorService executorService = new ThreadPoolExecutor(3, 5, 1L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(3), Executors.defaultThreadFactory());
    
            //3、接待客户,i< 客户人数
            for (int i = 0; i < 8; i++) {
                //3.1、从线程池取线程对象
                executorService.execute(() -> {
                    System.out.println(Thread.currentThread().getName() + " , 这个人在办理业务");
                });
            }
            //4、关掉线程池
            executorService.shutdown();
    
            //5、来第9个会报错, 抛异常, 默认采用拒绝策略
        }
    }
    
  • 相关阅读:
    最难的事
    性格决定命运,习惯决定未来
    系统构架师之路
    时间是经不起浪费的
    如何投资自己,增加自身价值!
    最好的程序员大多是自学成才的
    杂记
    Win7启动Oracle出错
    推荐代码生成器工具排行
    Hibernate 与 Oracle 11g 的问题
  • 原文地址:https://www.cnblogs.com/Twittery/p/15101132.html
Copyright © 2011-2022 走看看