B树与B+树

B树简介 一种二叉搜索树。 除根节点外的所有非叶节点至少含有(M/2(向上取整)-1)个关键字,每个节点最多有M-1个关键字,并且以升序排列。所以M阶B树的除根节点外的所有非叶节点的关键字取值区间为[M/2-1(向上取整),M-1]。 每个节点最多有M-1个关键字。 动图演示 B+树简介 有n棵子树的非叶子结点中含有n个关键字(b树是n-1个),这些关键字不保存数据,只用来索引,...

进程和线程相关知识点

何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。 何为线程?线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与...

线程之间同步的机制

待完善…

并发

常用排序算法Java实现

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。

算法

JUC 核心之AQS介绍

AQS 的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面。

并发

Atomic 原子类

Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。

并发

线程池原理分析

execute方法源码: 12345678910111213141516171819202122232425262728293031323334353637383940// 存放线程池的运行状态 (runState) 和线程池内有效线程的数量 (workerCount)private final AtomicInteger ctl = new AtomicInteger(ctlOf(RU...
并发

线程池

池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。
三大创建方法、七大参数、四种拒绝策略…

并发

volatile 关键字

volatile 是Java虚拟机提供的轻量级同步机制,保证可见性,不保证原子性,禁止指令重排。

并发

synchronized相关知识点

1、synchronized 关键字 1.1 synchronized 关键字简介synchronized 关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 另外,在 Java 早期版本中,synchronized 属于 重量级锁,效率低下。 为什么呢?因为监视器锁(monitor)是依赖于底层的操作...
并发