会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
XiaojunWang
博客园
首页
新随笔
联系
订阅
管理
2022年12月17日
vscode配置
摘要: VScode配置 1. 开发 1. Ctrl + P:显示搜索栏以搜索文件 (Mac: Cmd + P) 我们经常在多个文件进行切换,这个快捷键可以帮助我们快速找到我们想到的文件。 2. Ctrl + Shift + P:显示命令面板 (Mac: Cmd + Shift + P) 这个快捷键显示可以
阅读全文
posted @ 2022-12-17 19:37 XiaojunW
阅读(89)
评论(0)
推荐(0)
2022年11月21日
存储管理
摘要: 总览: 概述: 一个可执行文件是存放在磁盘中的可执行文件有个程序头表的区域 程序头表:描述了可执行文件的区域与虚拟空间的一个区域之间的映射关系 可执行文件装入系统执行时,会生成一个进程,进程的每一个vm_area_struct的节点描述了虚拟地址空间的一个区域 通过程序头表,建立了可执行文件的区域和
阅读全文
posted @ 2022-11-21 10:55 XiaojunW
阅读(40)
评论(0)
推荐(0)
阻塞、非阻塞与同步异步
摘要: 作者:萧萧 链接:https://www.zhihu.com/question/19732473/answer/241673170 来源:知乎 IO 概念区分 四个相关概念: 同步(Synchronous) 异步( Asynchronous) 阻塞( Blocking ) 非阻塞( Nonblock
阅读全文
posted @ 2022-11-21 10:34 XiaojunW
阅读(91)
评论(0)
推荐(0)
快排和归并排序
摘要: 快速排序 func sortArray(nums []int) []int { var quick_sort func(nums []int,l,r int) quick_sort=func(nums []int,l,r int){ if l>=r{ return } //这x取l、r、(l+r)>
阅读全文
posted @ 2022-11-21 10:31 XiaojunW
阅读(35)
评论(0)
推荐(0)
2022年11月20日
CAS
摘要: CAS机制 CAS(Compare and Swap)是乐观锁思想的一种典型实现 乐观锁与悲观锁 悲观锁: 悲观锁更新的方式认为:在更新数据的时候大概率会有其他线程去争夺共享资源,所以悲观锁的做法是:第一个获取资源的线程会将资源锁定起来,其他没争夺到资源的线程只能进入阻塞队列,等第一个获取资源的线程
阅读全文
posted @ 2022-11-20 21:58 XiaojunW
阅读(36)
评论(0)
推荐(0)
跳表
摘要: Redis 的 zset 是一个复合结构,一方面它需要一个 hash 结构来存储 value 和 score 的对应关系,另一方面需要提供按照 score 来排序的功能,还需要能够指定 score 的范围来获取 value 列表的功能,这就需要另外一个结构「跳跃列表」。 zset 的内部实现是一个
阅读全文
posted @ 2022-11-20 21:45 XiaojunW
阅读(108)
评论(0)
推荐(0)
sync.Map
摘要: sync.Map 众所周知,golang的map只读是线程安全的,同时写线程不安全,虽然加锁可以解决并发写的问题,但是加锁往往会有效率问题,为了提升效率,官方在go的1.9版本推出了sync.Map。 sync.map 是线程安全的,读取,插入,删除也都保持着常数级的时间复杂度。 sync.map
阅读全文
posted @ 2022-11-20 21:25 XiaojunW
阅读(199)
评论(0)
推荐(0)
Redis-HyperLoglog
摘要: Redis-HyperLoglog 概览 HyperLogLog作为一个实现基数统计的高效数据结构,被用在计算日活数据等应用领域,每个键占用的内容都是12k,但因为不存储实际的数据,因此可以统计2^64个值。 关于 Redis HyperLogLog 在说明 HyperLogLog 之前,我们需要先
阅读全文
posted @ 2022-11-20 21:23 XiaojunW
阅读(147)
评论(0)
推荐(0)
Golang实现hashmap
摘要: golang实现hashmap 思路:数组+链表->HashMap 先看一下go里的map是怎么实现的 go实现map采用拉链法的实现,如下图所示,键值对中的键会经过一个哈希函数,哈希函数会帮我们找到一个桶,对应我们用数组加链表的实现方式,就是映射到数组数组的一个位置,若该位置已经有数据了,那么就会
阅读全文
posted @ 2022-11-20 21:19 XiaojunW
阅读(282)
评论(0)
推荐(0)
golang的GC
摘要: golang采用三色标记法进行垃圾清理 GC过程分为标记过程和清理过程 产生错误的情况: 黑色对象引用白色对象 灰色对象到白色对象的引用被破坏 破坏这两个条件之一就可以避免错误情况的出现 可能的解决方法: 整个过程STW,浪费资源,且对用户程序影响较大,由此引入了屏障机制; 插入屏障解决的是第一种情
阅读全文
posted @ 2022-11-20 21:18 XiaojunW
阅读(111)
评论(0)
推荐(0)
下一页
公告