常量池、线程池、连接池

一、常量池

1、什么是常量

是一种值,这个值本身

例如:八大基本数据类型 加字符串

不可变的变量,被final修饰的

例如 final int i=1;

String str="hello";

2、作用

为了避免频繁的创建和销毁对象而影响系统性能,实现了对象的共享

二、线程池

ThreadPool

作用:限制系统中执行线程的数量

理解:在系统环境下,可以自动或手动设置线程数量,达到运行的最佳效果,少了浪费系统资源,多了系统阻塞。

线程池控制线程数量,其他线程排队。一个任务执行完毕,从队列中取最前面任务执行。若队列没有等待进程,线程池处于等待。当新任务运行,如果线程池有等待线程,就开始运行,否则进入等待队列。

线程池有什么作用?

线程池作用就是限制系统中执行线程的数量。

1、提高效率 创建好一定数量的线程放在池中,等需要使用的时候就从池中拿一个,这要比需要的时候创建一个线程对象要快的多。

2、方便管理 可以编写线程池管理代码对池中的线程同一进行管理,比如说启动时有该程序创建100个线程,每当有请求的时候,就分配一个线程去工作,如果刚好并发有101个请求,那多出的这一个请求可以排队等候,避免因无休止的创建线程导致系统崩溃。

三、连接池

为了能够重复利用数据库连接,提高对请求的相应时间和服务器的性能,采用数据库连接池技术。

连接池预先建立多个数据库连接对象,然后将连接对象保存到连接池中,当客户请求到来时,从池中取出一个连接对象为客户端服务,当请求完成后,客户端调用close() 方法,将连接对象放回池中。

java池_java中的各种池相关推荐

  1. java中数据库连接池_Java中的数据库连接池

    本文译自Baeldung的博客 概述 连接池是一种众所周知的数据库访问模式,主要目的是减少创建数据库连接和读/写数据库操作的开销. 简单来说,连接池本质上就是数据库连接缓存的一种实现方式,可以通过对其 ...

  2. java线程池怎么创建_java中的线程池,如何创建?

    Java中的线程池它是线程的容器,或者(换句话说,它是具有执行任务能力的线程的集合). 我们可以使用ThreadPool框架来定位(或实现)线程池. 线程池可以包含多个线程.每当我们执行任何任务时,线 ...

  3. java构造单例线程池_java中常见的六种线程池详解

    之前我们介绍了线程池的四种拒绝策略,了解了线程池参数的含义,那么今天我们来聊聊Java 中常见的几种线程池,以及在jdk7 加入的 ForkJoin 新型线程池 首先我们列出Java 中的六种线程池如 ...

  4. java加锁等待_java中的锁池和等待池

    在java中,每个对象都有两个池,锁(monitor)池和等待池 wait() ,notifyAll(),notify() 三个方法都是Object类中的方法. 锁池:假设线程A已经拥有了某个对象(注 ...

  5. java线程池_Java 并发编程 线程池源码实战

    作者 | 马启航 杏仁后端工程师.「我头发还多,你们呢?」 一.概述 笔者在网上看了好多的关于线程池原理.源码分析相关的文章,但是说实话,没有一篇让我觉得读完之后豁然开朗,完完全全的明白线程池,要么写 ...

  6. java多线池_java多线程之线程池

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  7. java 队列线程池_JAVA工作队列与线程池

    为什么要使用线程池? 诸如 Web 服务器.数据库服务器.文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务.请求以某种方式到达服务器,这种方式可能是通过网络协议 ...

  8. java ==和===_java中==和equals的区别详解

    分析前基础了解: 一)JVM把内存划分成两种:一种是栈内存,一种是堆内存. ①在函数中定义的一些基本类型的变量和对象的引用变量(变量名)都在函数的栈内存中分配. ②当在一段代码块定义一个变量时,Jav ...

  9. java 难度_java中难度大一点的面试题

    1.请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别.(5) (1)Vector和ArrayList的异同 实现原理,功能相同,可以互用 主要区别: Ve ...

最新文章

  1. 分享一例脚本发版和tomcat重启脚本
  2. Mybatis like查询的写法--转载
  3. 32M内存 跑linux内核,32位Linux单进程4G内存限制
  4. 企业管理软件开发不能割裂各系统的功能
  5. 程序员述职报告范文_物流人员述职报告范文(通用5篇)
  6. java okhttp3 工具类,Retrofit+okhttp+Rxjava网络请求工具类
  7. Building an FTP Test Plan
  8. 用getchar和%C输入字符型数据
  9. 按钮先调用页面JS,JS成功才调用后台代码
  10. spss主成分综合得分_权重赋值之“主成分分析法”
  11. hook代码 svn_Svn结合hook实现自动更新及多Project管理更新
  12. Unity新手开发VR项目
  13. 印刷电路板丝网设计的十大技巧
  14. 模仿微信朋友圈 图片浏览 js javascript 支持图片预览,滑动切换,双指缩放,图片缓存
  15. python读写文件is和==区别常用模块
  16. 迁移学习(Transfer Learning)-- 概念理解
  17. 全国青少年编程等级考试python一级真题2020年9月(含题库答题软件账号)
  18. oracle For循环和触发器Tigger
  19. Python分析那些“标题党”文章
  20. html如何让雨滴消失,使用纯CSS3实现雨滴掉落水面的动画特效

热门文章

  1. python经典教程游戏_使用pygame制作经典小游戏:五子棋
  2. 华为鸿蒙系统5G有什么联系,【手机|站在5G时代的路口,鸿蒙将带给我们什么?】路口|华为|鸿蒙|其他|系统|硬件_科技资讯_联盟·玩科技...
  3. pythonista3安卓_pythonista 3ios
  4. C++新特性探究(八):初始化列表(Initialization List)再探究
  5. c语言2维动态数组,如何创建一个动态2维数组?
  6. php定位和天气,php – 根据用户所在地显示天气
  7. Android vlc 分析视频,VLC-Android 对视频流(RTSP)做翻转、旋转
  8. mysql 命令行如何输入参数_MySQL命令行参数完整版
  9. html背景图片垂直居中,css — 定位、背景图、水平垂直居中
  10. go语音protobuf_总结一下protobuf安装-Go语言中文社区