摘要: https://zhuanlan.zhihu.com/p/94144867 阅读全文
posted @ 2023-05-12 17:17 kiper 阅读(3) 评论(0) 推荐(0) 编辑
摘要: https://segmentfault.com/a/1190000040680716 阅读全文
posted @ 2023-05-11 16:43 kiper 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 当初年轻不懂事,没好好学英语,四级都是飘过。 现在看各种英文文档开始还债,这也不懂哪也不懂。。。所以弄个表格记录一下遇到不会的单词,方便搜索和复习。 |单词|解释| |-|-| |enhance|增强| |extraction|提炼| |namely|也就是| |concise|简洁| |motiv 阅读全文
posted @ 2023-04-14 10:57 kiper 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 函数式编程介绍分为两章节。 第一章介绍C++函数式编程语法, 第二章简单介绍函数式编程思想。 C++语法 lambda表达式 lambda表达式是一个匿名函数。Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象。 语法:[捕获列表](参数列表)->返回类型{函数体} 比如定义 阅读全文
posted @ 2023-03-29 14:40 kiper 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 背景 之前某需求在触发流控时需要中断ExcutorService中的子线程,发现无论Shutdown、ShutdownNow方法都无法直接停止子线程,今天看到线程的interrupt()方法才了解如何停止。 stop() 和 interrupt() stop方法 stop() 方法会真的杀死线程,不 阅读全文
posted @ 2023-03-18 17:26 kiper 阅读(154) 评论(0) 推荐(0) 编辑
摘要: Java 语言在 1.5 之前,提供的唯一的并发原语就是管程,而且 1.5 之后提供的 SDK 并发包,也是以管程技术为基础的。 管程:管理共享变量以及对共享变量的操作过程,让它们支持并发。 MESA 模型 先后出现过三种不同的管程模型,分别是:Hasen 模型、Hoare 模型和 MESA 模型。 阅读全文
posted @ 2023-03-18 16:26 kiper 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 安全性 并发bug三大源头 源头 原子性问题 可见性问题 有序性问题 bug风险点 存在共享数据并且该数据会发生变化(即多个线程会同时读写同一数据) 分类 数据竞争 当多个线程同时访问同一数据,并且至少有一个线程会写这个数据。 假设 count=0,当两个线程同时执行 get() 方法时,get() 阅读全文
posted @ 2023-03-18 15:37 kiper 阅读(33) 评论(0) 推荐(0) 编辑
摘要: AOF记录内容 传统数据库的日志,例如 redo log(重做日志),记录的是修改后的数据,而 AOF 里记录的是 Redis 收到的每一条命令,这些命令是以文本形式保存的(类似mysql binlog中的statement格式)。 MySQL redo log是物理日志,记录的是某个数据页上做了什 阅读全文
posted @ 2023-03-14 14:55 kiper 阅读(119) 评论(0) 推荐(0) 编辑
摘要: |题目|难度|要点| | | | | |拼车|●|不需要构造原始数组,直接判断即可| |航班预定统计|●|构造原始数组| |区间加法|●|构造原始数组| 差分数组中,diff[i] 就是 nums[i] 和 nums[i-1] 之差;diff[0] = nums[0]; 拼车 class Solut 阅读全文
posted @ 2023-03-13 23:35 kiper 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 原子性 原子性:一个或多个操作在CPU执行的过程中不被中断的特性 原子性问题源头是线程切换,保证对共享变量的修改时互斥的,就可以保障原子性。 简易锁模型 临界区:一段需要互斥执行的代码 改进锁模型 明确锁的范围,能够锁住的资源。 简易锁模型容易出问题的地方: 1、锁住了错误的资源 2、锁的粒度太大, 阅读全文
posted @ 2023-03-13 18:17 kiper 阅读(50) 评论(0) 推荐(0) 编辑