首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
好好学Golang
AjaxZhan
创建于2024-08-01
订阅专栏
记录学习Golang的笔记和心得
等 14 人订阅
共15篇文章
创建于2024-08-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Golang的这个并发陷阱,让我3分钟内损失了10块
这篇博客分析了 Go 中闭包捕获变量的特性,以及如何解决这种并发陷阱。核心在于理解变量的作用域和闭包的行为:在 Go 中,闭包会捕获变量的引用,而不是值。
好好学Go(十四):详解Go语言的内存体系
无论是堆内存的高效分配与回收,还是栈内存的快速分配与释放,Go语言都通过一系列精妙的设计和优化手段,实现了内存使用的最大化效率。同时,逃逸分析作为编译器优化技术的一部分,也在Go的内存管理中很重要。
好好学Go(十三): Go语言是如何抽象Epoll的?
Network Poller是Runtime强大的工具,它抽象了操作系统底层的多路复用器操作。在Go底层,runtime不断调用netpoll方法自动监控多个Socket的状态。
好好学Go(十二):高并发下的通信方式Channel
通过`Channel`,Go协程之间可以安全地进行数据交换,无需担心数据竞争和同步问题,让开发者能够专注于业务逻辑的实现,而非繁琐的并发控制。
好好学Go(十一):Go语言的读写锁是怎么工作的?
读写锁的思想源于对数据访问模式的细致观察:在大多数并发应用场景中,数据的读取操作远多于写入操作。因此读写锁通过允许多个读者同时访问数据,而在有写入者时阻塞所有其他读写操作,来实现对共享资源的更高效管理
好好学Go(十):Go语言的互斥锁是怎么工作的?
我们将深入探讨Go语言中互斥锁的实现细节,包括它的基本使用方法、内部机制、以及如何正确地应用它来解决并发编程中常见的竞争条件和数据不一致问题。
好好学Go(九):Atomic操作与sema锁
仅仅依靠协程和通道还不足以解决所有并发问题,特别是在需要精细控制资源访问和数据一致性的场景下。这时,Atomic操作和sema锁(信号量锁)便成为了Go并发编程中不可或缺的一部分。
好好学Go(八):面试必问的GMP调度模型
Goroutine作为轻量级的线程,实现了高效的并发执行;Machine(M)代表操作系统级别的线程,是真正执行计算的实体;而Processor(P)则扮演着调度器与Goroutine之间的中介角色,
好好学Go(七):协程的本质与线程循环模型
协程是Go语言中一个非常重要的概念,Go语言能够天然支持高并发应用的开发所依赖的就是协程。本文将深入探讨协程的本质以及早期Go语言的线程循环模型,揭开协程的神秘面纱。
好好学Go(六):什么是Go语言的内存对齐
本文将深入探讨Go语言的内存对齐机制,首先解析Go中基本数据类型的对齐规则,随后聚焦于结构体的内存布局与对齐策略,帮助读者理解并优化自己的Go程序,以达到更高的运行效率。
好好学Go(五):搞清楚Go语言中的那些“空”们
我们将深入剖析Go语言中三个常被提及却又容易让人困惑的“空”——空结构体、空接口以及nil,并揭开接口底层实现的神秘面纱。它们既是Go语言灵活性和强大功能的体现,也是初学者容易踏入的“陷阱”。
好好学Go(四):面试官问我sync.Map的底层实现
就像Java中的HashMap是并发不安全的,Go语言的map也是不支持并发场景的。如果要在并发场景下使用map,就需要用到我们即将介绍的sync.Map。
好好学Go(三):Go语言中的Map到底是怎么实现的
本文我们将深入探索Go语言中Map到底是如何被实现的,以及它背后的设计哲学与机制,介绍了实现Map的基本方案、Go语言中Map的底层结构、Map的访问和Map的扩容等内容。
好好学Go(二):Go语言字符串和切片底层探索
本文旨在剖析字符串与切片的关键底层原理,不仅为面试准备提供有力支持,更关键的是,这些知识对于提升代码性能、优化内存分配策略以及编写出更加稳定可靠的代码具有不可估量的价值。
好好学Go(一):Go语言编译与运行过程浅探
Go:简洁且并发性能优异的语言 在当今这个快速迭代的软件开发时代,掌握一门高效、简洁且并发性能优异的编程语言显得尤为重要。