摘要:
MySQL基本组成 SQL执行流程 Server 层主要包括连接器、查询缓存、分析器、优化器、执行器,包含了MySQL主要的很多核心功能,以及所有的内置函数、存储过程、触发器、视图等,其实就是所有跨存储引擎的功能都是在这一层实现的 存储引擎层,主要负责数据的存储和读取,是以插件的形式存在的 ,支持如 阅读全文
摘要:
Vagrant 是一个基于Ruby的工具,主要用于创建和部署虚拟化开发环境。它以来于Oracle的开源VirtualBox虚拟化系统,通过使用 Chef创建自动化虚拟环境。 Vagrant 主要的功能如下: 建立和删除虚拟机 配置虚拟机相关参数 管理虚拟机运行状态 自动配置和安装开发环境 打包和分发 阅读全文
摘要:
000 - 🍳Sysbench 数据库压力测试工具 sysbench 是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以下操作都将以支持MySQL数据库为例进行。 1 阅读全文
摘要:
jstat 可以检查 JVM 整体的运行情况,可以看到 新生代,老年代等的内存使用情况,以及GC 次数和耗时 命令格式 如 jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] 其中 -option 必选参数表示命令参数 如 g 阅读全文
摘要:
# 顺序栈与链式栈的图解与实现 栈是一种特殊的线性表,它与线性表的区别体现在增删操作上 栈的特点是先进后出,后进先出,也就是说栈的数据操作只能发生在末端,而不允许在中间节点进行操作 如上图所示,对栈的增删操作都只能在末端也就是栈顶操作, 栈既然是线性表那么就存在表头和表尾,不过在栈结构中,对其都进行 阅读全文
摘要:
本文主要介绍和对比我们常用的几种并发工具类,主要涉及 CountDownLatch 、 CyclicBarrier 、 Semaphore 、 Exchanger 相关的内容,如果对多线程相关内容不熟悉,可以看笔者之前的一些文章: 《Java并发编程-线程基础》 《总算把线程六种状态的转换说清楚了! 阅读全文
摘要:
我们经常在项目中使用的线程池,但是是否关心过线程池的关闭呢,可能很多时候直接再项目中直接创建线程池让它一直运行当任务执行结束不在需要了也不去关闭,这其实是存在非常大的风险的,大量的线程常驻在后台对系统资源的占用是巨大的 ,甚至引发异常。所以在我们平时使用线程池时需要注意优雅的关闭,这样可以保证资源的 阅读全文
摘要:
在之前的线程池的介绍中我们看到了很多阻塞队列,这篇文章我们主要来说说阻塞队列的事。 阻塞队列也就是 BlockingQueue ,这个类是一个接 口,同时继承了 Queue 接口,这两个接口都是在JDK5 中加入的 。 BlockingQueue 阻塞队列是线程安全的,在我们业务中是会经常频繁使用到 阅读全文
摘要:
1. 问题引入 小伙伴们都接触过线程,也都会使用线程,今天我们要讲的是线程安全相关的内容,在这之前我们先来看一个简单的代码案例。 代码案例: /** * @url: i-code.online * @author: AnonyStar * @time: 2020/10/14 15:39 */ pub 阅读全文
摘要:
之前我们介绍了线程池的四种拒绝策略,了解了线程池参数的含义,那么今天我们来聊聊Java 中常见的几种线程池,以及在jdk7 加入的 ForkJoin 新型线程池 首先我们列出Java 中的六种线程池如下 线程池名称 描述 FixedThreadPool 核心线程数与最大线程数相同 SingleThr 阅读全文