Pistachio's Blog

Later equals never.

MySQL日志

一、Redo Log1.1 定义Redo log是物理日志,记录事务提交时,数据页的物理修改(具体存放了什么数据),用于实现事务的持久性。 1.2 作用保证事务的持久性。保证内存中和磁盘中数据的一致性,当刷新脏页到磁盘,发生错误时,进行数据恢复。 1.3 操作原理Redo Log由 重做日志缓冲 (Redo Log buffer) 和 重做日志文件 (Redo Log file) 组成。前者......

下一个排列的实现

整数数组的下一个排列,是指下一个字典序更大的排列,如123下一个排列是132 以下算法思想是c++ next_permutation的实现 以【1,2,3,8,5,7,6,4】的下一个排列为例 1234567891011121314151617181920212223242526272829class Solution {public: void nextPermutat......

go Map

一、定义1a := map[string]string{} map类型的变量本质上是一个指针,指向hmap结构体 /runtime/map.go hmaphmap是哈希表 1234567891011121314type hmap struct { count int // (记录已经存储的键值对的数量) # live cells == size of ......

Sync包

sync包提供线程同步原语的方法 一、WaitGroup1.1 Go语言标准库提供了WaitGroup原语,可以用来等待一批Goroutine结束,或者说让主协程等待子协程结束再操作。 1.2 使用例子 主协程是main,如果不加WaitGroup,则运行完就会先退出,没法打印字符串。 加上WaitGroup,让主协程等待5个子协程都执行完毕后,主协程再继续执行 12345678910111......

双端队列

双端队列一. 定义双端队列支持前后双端插入元素、弹出、删除元素 deque<object_type>deq 常用函数: 12345678910111213push_back();//队尾添加元素push_front(); //队列开头添加元素TreeNode *node = deq.front();pop_front(); // 删除队列中第一个元素pop_back();//删......

go slice切片

一、定义slice元素存储在连续的内存中,实质是数组 1234567// Slice is the runtime representation of a slice.// It cannot be used safely or portably and its representation may change in a later release.type Slice struct &#......

滑动窗口

题目中关键字是有连续、数组等字眼,可以考虑使用滑动窗口。 但如果数组中有负数,就不能用滑动窗口解决,可以考虑前缀和的方法。 LeetCode题目总结和为s的连续正数序列滑动窗口 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 思路: 选取一个点i,让j一直走,直到j>target,若都没有找到和为target的连续序列,则证明前面选......

go常用命令

删除不需要的依赖包、下载新的依赖包、更新go.sum 1go mod tidy ...

我的2022

786788bab830c39ff9970ffaa14eb72514832f601fb8767dc1622aceb8bec433914216baaef5947115e2bb68f026026b845fdcb4c42913b293d1484ca8d637bdaab4b66e928e16c404bb46863ec4e06a4b9c98251cee95bbe594e3f41e58a548d2......

go GMP模型

一、GM模型go1.1版本之前是用GM模型的: 缺点: 全局队列的锁竞争问题。M从全局队列获取G时,都要获取队列的锁,导致激烈的锁竞争,性能下降 M的使用效率不能最大化,增加空转时间(没有work-stealing 和 hand-off机制) M转移G增加额外开销。例如M1在运行G1时,创建了G2。为了继续执行G1,需要把G2交给其它的M处理,或者放在全局队列中,不能保证是由M1处理,......