四、进程管理
摘要:小林coding 《图解系统:进程管理》笔记 参考: 张杰:上下文切换开销 Chris Terman:L17: Virtualizing the Processor openCSF: 3.3. 管道和 FIFO 进程 当进程要从硬盘读取数据时,CPU 不需要阻塞等待数据的返回,而是去执行另外的进程。
阅读全文
三、零拷贝
摘要:小林coding《什么是零拷贝》笔记 参考: The Linux Kernel Linux :Concepts overview 兰新宇 : Linux中的mmap映射 [一] ALEX XU 徐旭 :Why is Kafka fast? nginx.com/blog : Improving NGI
阅读全文
单例模式
摘要:黑马程序员《深入学习Java并发编程》笔记 单例模式有很多实现方法,饿汉、懒汉、静态内部类、枚举类,试分析每种实现下获取单例对象(即调用 getInstance)时的线程安全,并思考注释中的问题 饿汉式:类加载就会导致该单实例对象被创建 懒汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时
阅读全文
三、共享模型之内存
摘要:一 volatile 主内存:所有的变量都存储在主内存。线程间变量值的传递均需要通过主内存来完成。 线程的工作内存:保存了被该线程使用的变量的主内存副本。线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的数据。不同的线程之间也无法直接访问对方工作内存中的变量。线程间
阅读全文
二、文件系统
摘要:小林coding 《图解系统:文件系统》笔记 Linux 最经典的一句话是:「一切皆文件」,不仅普通的文件和目录,就连块设备、管道、socket 等,也都是统一交给文件系统管理的。 Linux 支持的文件系统也不少,根据存储位置的不同,可以把文件系统分为三类: 磁盘的文件系统,它是直接把数据存储在磁
阅读全文
一、内存管理
摘要:小林coding 《图解系统:内存管理》笔记 参考: The Linux Kernel Linux :Concepts overview 兰新宇 : Linux中的mmap映射 [一] Chris Terman:L17: Virtualizing the Processor 虚拟内存分段分页 为了在
阅读全文
LeetCode —— 排序
摘要:148. 排序链表 一般都用归并排序,因为是单向链表,其它排序算法根据下标找元素,向前遍历等都比较困难 主函数流程是: 如果 head==null || head.next==null return head。因为 head.next == null 即只有一个元素时,不用再划分了,而且一个元素本身
阅读全文
排序算法总结
摘要:排序算法复杂度比较 快速排序 基准元素的选取会影响复杂度,最坏的情况可能到 O(n2) 选取区间起始元素 选取区间结束元素 在区间内随机选取一元素 !!!! 注意下面 这个,一定要先找右边,再找左边 // 在右边 找到第一个小于 pivot 的(所以大于【等于】的都忽略) while (nums[r
阅读全文
TCP —— 三次握手与四次挥手
摘要:参考: 小林coding: https://xiaolincoding.com/network/3_tcp/tcp_interview.html TCP建立连接——三次握手 第三次握手是可以携带数据的,前两次握手是不可以携带数据的,这也是面试常问的题。 三次握手分别丢失会发生什么? 一些原则: sy
阅读全文
一致性 Hash
摘要:参考: simplezero :一致性hash 概念 一致性hash算法主要应用在分布式缓存系统中,在增加或者删除服务器节点时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系,也就是系统中的大多数历史缓存的存储服务器节点可以不变,解决了普通hash算法带来的动态伸缩性问题。 如上图
阅读全文
LeetCode —— 二分查找
摘要:33. 搜索旋转排序数组 翻转点在前半部分 nums[mid]<=nums[low] 而后半部分是单调递增的,比较好判断。可以判断如果 nums[mid] < target <= nums[high] ,去后半部分 else 去后半部分 else 翻转点在后半部分 nums[mid]>nums[lo
阅读全文
并发编程 - 模式与应用
摘要:限制 1、限制对 CPU 的使用 单核 CPU 下,while (true) 里如果什么都不干, CPU 会空转占用会很快达到 100% 。这时 while(true) 里哪怕用 sleep(1) 也会大幅降低 cpu 占用 sleep 实现 while(true) { try { Thread.s
阅读全文
RocketMQ - 顺序消息/事务消息/延迟消息
摘要:参考: shanml :【RocketMQ】【源码】顺序消息实现原理 低学历程序员 : RocketMQ系列之客户端顺序消息线程模型(八) 王侦 : RocketMQ基础原理 李玥:消息队列高手课 IT小栈 :RocketMQ延迟消息 顺序消息 一个订单产生了三条消息分别是订单创建、订单付款、订单完
阅读全文
服务容错
摘要:参考: 《凤凰架构:服务容错》 @Sup :服务降级 & 熔断机制 容错性设计不能妥协源于分布式系统的本质是不可靠的,一个大的服务集群中,程序可能崩溃、节点可能宕机、网络可能中断,这些“意外情况”其实全部都在“意料之中”。 这里容错策略指的是“面对故障,我们该做些什么” 容错设计模式指的是“要实现某
阅读全文
限流算法
摘要:Token bucket algorithm 令牌桶算法 该算法用具有预定义令牌容量的桶进行类比,这个桶会定期以恒定速率填充令牌。令牌可以被视为某种特定大小的数据包。 因此,每次我们收到请求时,算法都会检查存储桶中的令牌,每个请求应该至少有一个令牌才可以被转发以进一步处理。 令牌桶的算法流程如下:
阅读全文