首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
unitiny
掘友等级
less is more
获得徽章 7
动态
文章
专栏
沸点
收藏集
关注
作品
赞
53
文章 42
沸点 11
赞
53
返回
|
搜索文章
赞
文章( 42 )
沸点( 11 )
Go defer的底层原理是怎样的?
前言 defer常用于锁的释放,连接关闭等场景,执行顺序是后进先出,靠后的defer先执行。那defer是怎么实现的呢? 实现思路 有两种思路: 由协程记录所有defer的执行代码,等return后调
Go GC是如何回收堆内存的?
前言 前情回顾: Go 堆内存结构是什么样的? Go 如何分配堆内存? 终于来到GC这块了。Go的GC是在运行程序时才工作的,并且是异步的,类似一个后台进程,不会打扰到其它协程的工作。那GC是怎么实现
Go 如何分配堆内存?
前言 前情回顾: Go 堆内存结构是什么样的? 我们在使用make,new函数时,都会涉及到堆内存的分配。那Go是如何分配堆内存的呢? 堆结构 简单回顾下堆结构: heapArena是一个64MB的堆
Go 堆内存结构是什么样的?
前言 Go中栈内存也是从堆内存中申请的,那堆内存是什么结构呢?堆内存如何分配内存呢? 操作系统内存结构 操作系统中,每个进程都有一个独立的巨大的虚拟内存,这些内存实际映射到物理内存上。而当物理内存空间
Go channel管道的运行原理
前言 Go推荐通过通信来共享内存,而channel就实现了这一理念。那channel是怎么运行的呢? 功能 举个例子看下channel的使用效果: 以上代码新建了一个缓冲区为8的管道,然后开启read
Go 瞧瞧WaitGroup
前言 WaitGroup常用于主协程等待一组goroutine完成,才继续下一步任务。其源码也较为简单,那不妨通过业务推导方式,自己梳理出实现逻辑,这样以后就靠推导而无需记忆实现原理了。 情景分析 使
Go 动手实操来了解Mutex互斥锁原理
前言 Mutex互斥锁是并发中最常见的锁,本篇分析下Mutex的运行机制,并通过测试解读源码。 锁结构 Mutex锁源码结构如下: Mutex结构体简单得令人惊讶,仅用两个字段就能实现互斥锁?其实里面
使用Go从零实现一个Redis(四):实现pubsub发布订阅命令
Redis的pubsub模式是一种消息发布/订阅模式,允许客户端订阅一个或多个频道,并接收发布到这些频道的消息。在MiniRedis中实现了简单的pubsub模式
Go 底层锁:原子操作和sema信号量
前言 在Go开发中,我们会经常用到互斥锁,读写锁。而这些锁是基于更底层的锁来实现的。今天我们就来了解下原子操作和sema信号量,看它们能做些什么事情? 原子操作 用法 原子操作只支持简单的运算操作,比
golang sema源码解析
acquire 简单case cansemacquire。通过cas来获取信号量,如果为0则说明没有信号量,需要后续通过复杂方式来获得信号量。如果cas成功则说明成功获得信号量,acqure步骤可以到
下一页
个人成就
文章被点赞
127
文章被阅读
26,110
掘力值
956
关注了
3
关注者
41
收藏集
2
关注标签
4
加入于
2022-04-07