上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页
摘要: 存储在磁盘上的数据需要通过 IO 来读取,这是一个比较耗时的操作,为了能够提高访问速度,MySQL 引入了 Page 的结构作为客户端与数据交互的基本单元。 Page 结构 Page 的大小默认为 16 kb,由于这个大小可能无法与某些操作系统的页大小相匹配,这种情况下可能会使得对于 Page 的写 阅读全文
posted @ 2021-12-17 08:51 FatalFlower 阅读(432) 评论(0) 推荐(0)
摘要: 对应 126. 单词接龙 II 问题描述 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord → s1 → s2 → ... → sk 这样的单词序列,并满足: 每对相邻的单词之间仅有单个字母不同。 转换 阅读全文
posted @ 2021-12-16 17:13 FatalFlower 阅读(33) 评论(0) 推荐(0)
摘要: 对应 LeetCode 752.转动转盘锁 ### 问题定义 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每 阅读全文
posted @ 2021-12-16 16:40 FatalFlower 阅读(54) 评论(0) 推荐(0)
摘要: 本文翻译于: https://redis.io/topics/distlock 分布式锁在不同的进程必须互斥地访问共享资源的情况下是十分有用的。 已经有许多的库和博客描述了如何使用 Redis 来实现 DLM(Distrubtion Lock Manage)。但是这些库都使用了不同的方法,并且与使用 阅读全文
posted @ 2021-12-15 21:44 FatalFlower 阅读(751) 评论(0) 推荐(0)
摘要: 任务的创建与执行 在多线程的编程环境中,理想的情况是每个任务之间都存在理想的边界,各个任务之间相互独立,这样才能够享受到并发带来的明显的性能提升,并且,由于每个任务之间如果都是独立的,对于并发的处理也会简单许多。 一般情况下,显式地创建一个线程,启动一个任务会调用以下的构造函数创建一个 Thread 阅读全文
posted @ 2021-12-15 21:39 FatalFlower 阅读(54) 评论(0) 推荐(0)
摘要: 传统 Map 的局限性 HashMap JDK 1.7 的 HashMap JDK 1.7 中 HashMap 的实现只是单纯的 “数组 + 链表 ” 的组合方式,具体的组成如下: [1] 在 JDK 1.7 的实现中,HashMap 内部会维护一个数组,数组中的每个元素都是一个单向链表。这是因为不 阅读全文
posted @ 2021-12-12 14:21 FatalFlower 阅读(44) 评论(0) 推荐(0)
摘要: 本文使用的 JDK 版本为 JDK 8 JUC 中关于读写锁的接口定义如下: // java.util.concurrent.locks.ReadWriteLock public interface ReadWriteLock { // 返回一个读锁 Lock readLock(); // 返回一个 阅读全文
posted @ 2021-12-09 21:19 FatalFlower 阅读(125) 评论(0) 推荐(0)
摘要: 本文使用的 JDK 版本为 JDK 8 基本同步工具类 闭锁(CountDownLatch) 闭锁是一种工具类,可以延迟线程的进度直到其到达终止状态。闭锁的作用相当与一扇门:在闭锁的状态到达之前,这扇门一直是关闭的,没有任何线程能够通过,当到达这扇门之后,这扇门会打开并且允许所有的线程通过。当闭锁到 阅读全文
posted @ 2021-12-09 21:18 FatalFlower 阅读(110) 评论(0) 推荐(0)
摘要: 本文 JDK 对应的版本为 JDK 13 由于传统的 synchronized 关键字提供的内置锁存在的一些缺点,自 JDK 1.5 开始提供了 Lock 接口来提供内置锁不具备的功能。显式锁的出现不是为了替代 synchronized提供的内置锁,而是当内置锁的机制不适用时,作为一种可选的高级功能 阅读全文
posted @ 2021-12-07 14:29 FatalFlower 阅读(48) 评论(0) 推荐(0)
摘要: 线程状态 线程一般的状态转换图如下: 在线程生命周期中存在的状态解释如下: New(初始化)状态 此时线程刚刚被实例化,可以通过调用 start() 方法来启动这个实例化的的线程,使其状态转变成为 Ready 状态 Runnable 状态 Ready 状态和 Running 状态统称为 Runnab 阅读全文
posted @ 2021-12-06 14:47 FatalFlower 阅读(74) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 下一页