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

    线程池:java语言为我们提供了一个管理线程的类型ExecutorService。

    概念:创建多个线程,集合到一起就是线程池。

    作用:自动创建线程,重用线程。

      当创建大量的线程时,在线程结束后会有内存开销,线程的频繁切换也会造成大量的开销,很容易系统崩溃,所以设计了线程池。

    线程池对象为我们提供了固定数量的线程,如果有多个任务,可以交给线程池,由线程池来分配任务,交给空闲的线程来执行任务,当任务执行完毕,线程不结束,回到空闲状态。

    如何把集合对象变成安全的?

      工具类Collections中提供了synchronizedList,synchronizedSet,synchronizedMap方法,将集合对象变成安全的。

    创建线程池的四种方法:

      (1)Executors.newCachedThreadPool();

          * 创建缓存线程池,会根据传来的任务的多少来

            * 决定线程池的线程的个数,此线程池的线程最多为max_value

              * 当任务超出了此线程数,就会处于排队情况

      (2)Executors.newFixedThreadPool(10);

          *此方法获取一个有size个线程的线程池

            * 此线程池下最多执行size个任务
                * 其他的处于队列中

      (3)Executors.newScheduledThreadPool(12);

           * 此方法可以指定线程池中线程的数量

             * 可以设置延迟效果

      (4)Executors.newSingleThreadExecutor();

           *创建含有一个线程的线程池

  • 相关阅读:
    for循环使用详解(c语言版)
    在Spring中轻松写日志
    项目可行性分析的困难
    控制台游戏引擎CGE——贪吃蛇
    python做数据分析pandas库介绍之DataFrame基本操作
    什么是 JWT -- JSON WEB TOKEN
    .net core 单体应用基于策略模式授权
    ABP VNext 初始化数据库时报错
    ABP VNext简介及使用代码生成器ABPHelper自动生成代码
    使用jenkins 在docker中发布.net core应用
  • 原文地址:https://www.cnblogs.com/lyr999736/p/9189859.html
Copyright © 2011-2022 走看看