luozhiyun 的文章
  • 详解Go中内存分配源码实现

    Go 语言的内存分配器就借鉴了 TCMalloc 的设计实现高速的内存分配,它的核心理念是使用多级缓存将对象根据大小分类,并按照类别实施不同的分配策略。TCMa...

    luozhiyun 2023-01-02
    242 0 0
  • Go语言中时间轮的实现

    最近在工作中有一个需求,简单来说就是在短时间内会创建上百万个定时任务,创建的时候会将对应的金额相加,防止超售,需要过半个小时再去核对数据,如果数据对不上就需要将...

    luozhiyun 2023-01-02
    249 0 0
  • 详解Go语言I/O多路复用netpoller模型

    从 Go 源码目录结构和对应代码文件了解到 Go 在不同平台下的网络 I/O 模式的有不同实现。比如,在 Linux 系统下基于 epoll,freeBSD 系...

    luozhiyun 2023-01-02
    246 0 0
  • 详解Go语言调度循环源码实现

    提到"调度",我们首先想到的就是操作系统对进程、线程的调度。操作系统调度器会将系统中的多个线程按照一定算法调度到物理CPU上去运行。虽然线程比较轻量,但是在调度...

    luozhiyun 2023-01-02
    252 0 0
  • Go语言实现布谷鸟过滤器

    在我们工作中,如果遇到如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断一般想到的是将集合中所有元素保存起来,然后通过比较确定。如果通过性能最好的Has...

    luozhiyun 2023-01-02
    242 0 0
  • Go中定时器实现原理及源码解析

    我在春节期间写了一篇文章有关时间轮的:https://www.luozhiyun.com/archives/444。后来有同学建议我去看看 1.14版本之后的 ...

    luozhiyun 2023-01-02
    245 0 0
  • Go语言GC实现原理及源码分析

    在垃圾收集器开始工作时,从 GC Roots 开始进行遍历访问,访问步骤可以分为下面几步:

    luozhiyun 2023-01-02
    259 0 0
  • 从源码剖析Go语言基于信号抢占式调度

    在 Go 的 1.14 版本之前抢占试调度都是基于协作的,需要自己主动的让出执行,但是这样是无法处理一些无法被抢占的边缘情况。例如:for 循环或者垃圾回收长时...

    luozhiyun 2023-01-02
    236 0 0
  • 一文教你搞懂 Go 中栈操作

    多任务操作系统中的每个进程都在自己的内存沙盒中运行。在32位模式下,它总是4GB内存地址空间,内存分配是分配虚拟内存给进程,当进程真正访问某一虚拟内存地址时,操...

    luozhiyun 2023-01-02
    239 0 0
  • 从栈上理解 Go语言函数调用

    这篇文章中函数调用(Function Calls)中的函数指的是 Go 中的任意可执行代码块。在 《Go 1.1 Function Calls》中提到了,在 G...

    luozhiyun 2023-01-02
    239 0 0