会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
原始滴滴
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
下一页
2020年2月29日
【协作式原创】查漏补缺之Goroutine的调度(预备知识)
摘要: 几个概念 "Linux进程和线程" 用户态和内核态 系统调用将Linux整个体系分为用户态和内核态(或者说内核空间和用户空间)// 参考附录4 内核虚拟内存的构造 // 参考附录1 以32位为例,有4G虚拟地址空间。 用户代码可以访问3G的内存空间,内核代码可以访问1G的内存空间,分别就对应程序用户
阅读全文
posted @ 2020-02-29 22:49 sicnu-yudidi
阅读(144)
评论(0)
推荐(0)
2020年2月28日
为什么需要内存对齐?
摘要: 主要有两个原因: 1. 平台(移植性)原因: 不是所有的硬件平台都能够访问任意地址上的任意数据。例如:特定的硬件平台只允许在特定地址获取特定类型的数据,否则会导致异常情况。 2. 性能原因: 若访问未对齐的内存,将会导致 CPU 进行两次内存访问,并且要花费额外的时钟周期来处理对齐及运算。而本身就对
阅读全文
posted @ 2020-02-28 20:34 sicnu-yudidi
阅读(290)
评论(0)
推荐(0)
2020年2月22日
【协作式原创】查漏补缺之Go的slice基础和几个难点
摘要: "【转载】队友博客" Q: 为啥要字节对齐的 https://www.nowcoder.com/discuss/57978 TODO: Q: go反汇编指令 Q: a[0]:(int32,0,5)(int32,3,5) 3可以append,0不可以append. Q: 如何证明slice底层函数被修
阅读全文
posted @ 2020-02-22 13:52 sicnu-yudidi
阅读(128)
评论(0)
推荐(0)
2020年2月18日
【协作式原创】自己动手写docker之run代码解析
摘要: "预备知识: Linux命令" "预备知识:namespace和cgroup(CentOS7.7)" "一,exec替换进程映像" 函数功能: 用exec函数可以把当前进程替换为一个新进程,且新进程与原进程有相同的PID 例如:在shell命令行执行ps命令,实际上是shell进程调用fork复制一
阅读全文
posted @ 2020-02-18 23:34 sicnu-yudidi
阅读(251)
评论(0)
推荐(0)
【算法】剑指第二版3.数组中重复数字
摘要: 题干 在一个长度为n的数组里的所有数字都在0到n 1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 直觉思路 1. 排序 O(n
阅读全文
posted @ 2020-02-18 16:21 sicnu-yudidi
阅读(95)
评论(0)
推荐(0)
剑指offer第二版速查表
摘要: "3.数组中重复数字:每个位置放置数字与下标对应相等 O(n)" "4.二维数组中的查找:右下角开始比较 O(m+n)" 5.替换空格:python直接替换 "6.从尾到头打印链表: 借助栈或直接利用系统调用栈" // 创建链表(设置next节点时就会创建下一个节点), 打印链表(最后打印nil)
阅读全文
posted @ 2020-02-18 14:12 sicnu-yudidi
阅读(193)
评论(0)
推荐(0)
2020年2月15日
【协作式原创】查漏补缺之乐观锁与悲观锁TODO
摘要: 面试官:你了解乐观锁和悲观锁吗? 乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。 悲观锁的实现方式是加锁,加锁既可以是对代码块加锁(如Java的synchronized关键字),也可以是对数据加锁(如MySQL中的排它锁)。 乐观锁的实现方式主要有两种: "CAS机制" 和版本号机制,
阅读全文
posted @ 2020-02-15 13:53 sicnu-yudidi
阅读(115)
评论(0)
推荐(0)
【协作式原创】查漏补缺之Go并发问题(单核多核)
摘要: 主要回答一下几个问题 1.单核并发问题 2.多核并发问题 2.几个不正确的同步案例 1.单核并发问题 先看一段go(1.11)代码: 单核CPU,1万个携程,每个携程执行100次+1操作, 思考n最终会打印多少? 0++ sleep切换 1++ sleep切换 打印2,退出 您说的没错,我写了一段新
阅读全文
posted @ 2020-02-15 13:21 sicnu-yudidi
阅读(754)
评论(0)
推荐(0)
2020年2月14日
【协作式原创】查漏补缺之Golang中mutex源码实现(预备知识)
摘要: 预备知识 CAS机制 1. 是什么 参考附录3 CAS 是项乐观锁技术,当多个线程尝试使用 CAS 同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并 ,而是被告知这次竞争中失败,并可以再次尝试。 CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新
阅读全文
posted @ 2020-02-14 16:17 sicnu-yudidi
阅读(429)
评论(0)
推荐(0)
2020年2月7日
【协作式原创】查漏补缺之Golang中mutex源码实现
摘要: "概览最简单版的mutex(go1.3版本)" "预备知识" 主要结构体 func (m Mutex) Lock() { // 情况1: CAS1直接加锁成功 // Fast path: grab unlocked mutex. if atomic.CompareAndSwapInt32(&m.st
阅读全文
posted @ 2020-02-07 11:32 sicnu-yudidi
阅读(547)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
下一页
公告