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

    今天做了一个需求要求登录系统后记录所有人的所有操作,由于该类型操作任务量小但是却很多,所以想到了用线程池,实现异步操作,避免同步操作影响性能。选择了spring的线程池基于xml配置文件进行配置。线程数和队列项目实际情况进行配置
    Java提供了4钟线程池:
      newCachedThreadPool
    特性:
    • 它是一个可以无限扩大的线程池;
    • 它比较适合处理执行时间比较小的任务(只有任务小,线程数比较多才能复用);
    • corePoolSize为0,maximumPoolSize为无限大,意味着线程数量可以无限大;
    • keepAliveTime为60S,意味着线程空闲时间超过60S就会被杀死;
    • 采用SynchronousQueue装等待的任务,这个阻塞队列没有存储空间,这意味着只要有请求到来,就必须要找到一条工作线程处理他,如果当前没有空闲的线程,那么就会再创建一条新的线程。
      newFixedThreadPool
    特性:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
     
      newSingleThreadExecutor
    特性:
    • 它只会创建一条工作线程处理任务;
    • 采用的阻塞队列为LinkedBlockingQueue
      newScheduledThreadPool
    特性:支持定时及周期性任务执行
     
    spring提供了一个threadPoolTaskExecutor 线程池
    需要关注,线程数,队列类型,拒绝策略
     
    这几篇文章讲解的比较好:
     
     
  • 相关阅读:
    jQ插件开发规范(转)
    一个圆环形状的进度条。
    [转载]jQuery 图表插件 jqChart 使用
    作业.mp4
    嘣嘣嘣嘣嘣哥TnT
    我对GIT的认识`
    git的理解
    文章读后感
    团队作业7
    团队作业6
  • 原文地址:https://www.cnblogs.com/ljy-skill/p/11013220.html
Copyright © 2011-2022 走看看