摘要: 创建表时修改自增主键,添加 ,例如: mysql CREATE TABLE ( int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', PRIMARY KEY ( ) ) ENGINE=InnoDB AUTO_INCREMENT= DEFAU 阅读全文
posted @ 2018-09-19 11:16 WriteOnRead 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1. 一些概念 1.1 垃圾&垃圾收集 垃圾:在 JVM 语境下,“垃圾”指的是死亡的对象所占据的堆空间。 垃圾收集:所谓“垃圾收集”,就是将已分配出去、但不再使用的内存回收回来,以便能再次分配。 1.2 对象是否死亡 如何判断一个对象是否死亡(即不可能再被任何途径使用)?通常有以下两种方法: 1. 阅读全文
posted @ 2020-03-17 20:57 WriteOnRead 阅读(395) 评论(0) 推荐(1) 编辑
摘要: 1. 概述 Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分为若干个不同的数据区域。它们各有用途,有些随着虚拟机进程的启动一直存在(堆、方法区),有些则随着用户线程的启动和结束而建立和销毁(程序计数器、虚拟机栈、本地方法栈)。 《Java 虚拟机规范》中规定 Java 虚拟机管理的 阅读全文
posted @ 2020-03-16 21:33 WriteOnRead 阅读(968) 评论(0) 推荐(1) 编辑
摘要: 1. 简述 Java 不仅仅是一门编程语言,还是一个由一系列计算机软件和规范组成的技术体系。 Java 的广告词为 "一次编写,到处运行",之所以能够做到"跨平台",是因为每个平台上不同的虚拟机屏蔽了硬件的差异,而 Java 程序则是运行在虚拟机之上的。 本文简要介绍 Java 技术体系及 Java 阅读全文
posted @ 2020-03-16 21:20 WriteOnRead 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 概述 Semaphore 是并发包中的一个工具类,可理解为信号量。通常可以作为限流器使用,即限制访问某个资源的线程个数,比如用于限制连接池的连接数。 打个通俗的比方,可以把 Semaphore 理解为一辆公交车:车上的座位数(初始的“许可” permits 数量)是固定的,行驶期间如果有人上车(获取 阅读全文
posted @ 2019-08-10 11:49 WriteOnRead 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 概述 CyclicBarrier 是并发包中的一个工具类,它的典型应用场景为:几个线程执行完任务后,执行另一个线程(回调函数,可选),然后继续下一轮,如此往复。 打个通俗的比方,可以把 CyclicBarrier 的执行流程比作:几个人(类比线程)围着操场跑圈,所有人都到达终点后(终点可理解为“屏障 阅读全文
posted @ 2019-08-08 20:44 WriteOnRead 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 概述 CountDownLatch 是并发包中的一个工具类,它的典型应用场景为:一个线程等待几个线程执行,待这几个线程结束后,该线程再继续执行。 简单起见,可以把它理解为一个倒数的计数器:初始值为线程数,每个线程结束时执行减 1 操作,当计数器减到 0 时等待的线程再继续执行。 代码分析 Count 阅读全文
posted @ 2019-08-07 21:21 WriteOnRead 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 概述 在 JDK 1.5 以前,锁的实现只能用 synchronized 关键字;1.5 开始提供了 ReentrantLock,它是 API 层面的锁。先看下 ReentrantLock 的类签名以及如何使用: 典型用法: 该用法和使用 synchronized 关键字效果是一样的。既然有了 sy 阅读全文
posted @ 2019-08-06 21:33 WriteOnRead 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 概述 前文「JDK源码分析-AbstractQueuedSynchronizer(2)」分析了 AQS 在独占模式下获取资源的流程,本文分析共享模式下的相关操作。 其实二者的操作大部分是类似的,理解了前面对独占模式的分析,再分析共享模式就相对容易了。 共享模式 方法概述 与独占模式类似,共享模式下也 阅读全文
posted @ 2019-08-05 22:15 WriteOnRead 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 概述 前文「JDK源码分析-AbstractQueuedSynchronizer(1)」初步分析了 AQS,其中提到了 Node 节点的「独占模式」和「共享模式」,其实 AQS 也主要是围绕对这两种模式的操作进行的。 Node 节点是对线程 Thread 类的封装,因此两种模式可以理解如下: 独占模 阅读全文
posted @ 2019-08-04 22:23 WriteOnRead 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 概述 前文「JDK源码分析-Lock&Condition」简要分析了 Lock 接口,它在 JDK 中的实现类主要是 ReentrantLock (可译为“重入锁”)。ReentrantLock 的实现主要依赖于其内部的一个嵌套类 Sync,而 Sync 又继承自 AbstractQueuedSyn 阅读全文
posted @ 2019-08-04 11:27 WriteOnRead 阅读(323) 评论(0) 推荐(0) 编辑