golang
文章平均质量分 88
最全的 golang 知识
yue_xin_tech
一个对技术虔诚的程序员
展开
-
golang 面试总结
前段时间找工作搜索golang 面试题时,发现都是比较零散或是基础的题目,覆盖面较小。而自己也在边面试时边总结了一些知识点,为了方便后续回顾,特此整理了一下。原创 2022-02-08 23:17:57 · 689 阅读 · 0 评论 -
golang 重要知识:sync.Cond 机制
golang 同步机制 sync.Cond:可同步等待,单播唤起,广播唤起原创 2021-07-13 23:43:08 · 437 阅读 · 0 评论 -
golang 重要知识:内存管理
为了能更好的分配内存以及管理对象生命周期,golang 在 runtime 运行时上实现了自己的内存管理机制。 它借鉴了 Google 的 TCMalloc ,TCMalloc 是高性能的用于 c++ 的内存分配器。其核心思想是**内存池 + 多级对象管理** ,加快了分配速度,也降低了资源竞争。 有分配就有回收,有些对象在使用完后就不再被引用到,这些被称之为“**垃圾对象**”。Go 通过**三色标记法**来回收这些垃圾对象。并且会在分配对象时,将一些微小对象标记为不需要 GC 扫描,从而减少了扫原创 2021-06-20 20:37:45 · 294 阅读 · 0 评论 -
golang 重要知识:waitgroup 解析
Golang 提供了简洁的 go 关键字来让开发者更容易的进行并发编程,同时也提供了 WaitGroup 对象来辅助并发控制。今天我们就来分析下 WaitGroup 的使用方法,顺便瞧一瞧它的底层源码原创 2021-07-10 13:21:47 · 1789 阅读 · 1 评论 -
golang 重要知识:channel 用法和底层原理
channel 是 goroutine 与 goroutine 之间通信的重要桥梁,借助 channel,我们能很轻易的写出一个**多协程**通信程序。今天,我们就来看看这个 channel 的常用用法以及底层原理。原创 2021-06-28 00:08:57 · 6301 阅读 · 0 评论 -
golang 重要知识:RWMutex 读写锁分析
在上一篇文章 [golang 重要知识:mutex](https://blog.csdn.net/h_l_f/article/details/118462433) 里我们介绍了互斥锁 mutex 的相关原理实现。而且在 Go 里除了互斥锁外,还有读写锁 RWMutex,它主要用来实现读共享,写独占的功能。今天我们也顺便分析下读写锁,加深对 Go 锁的理解。原创 2021-07-06 20:29:50 · 577 阅读 · 0 评论 -
golang 重要知识:深入认识 map
map 通过 hasTable 实现了我们最常见的 key-value 存储,能快速的进行数据集的增删查改。同时 Go 里的 map 也有很多特殊的地方,比如它的无序性、并发不安全等。今天,就让我们对 map 深入研究,看看它是怎么设计的。原创 2021-07-03 21:31:49 · 173 阅读 · 0 评论 -
golang 重要知识:垃圾回收
golang 的三色标记法虽然没有 java 的内存回收机制成熟,但它细分了回收过程,通过写屏障技术,能和用户程序并发进行,这也大大提高了内存回收速度。原创 2021-06-26 13:26:08 · 742 阅读 · 0 评论 -
golang 重要知识:sync.Once 讲解
sync.Once 介绍及源码分析原创 2021-07-13 20:41:06 · 201 阅读 · 0 评论 -
golang 重要知识:mutex
Go 号称是为了高并发而生的,在高并发场景下,势必会涉及到对公共资源的竞争。当对应场景发生时,我们经常会使用 mutex 的 Lock() 方法和 Unlock() 方法来占有或释放资源。虽然调用简单,但 mutex 的内部却涉及挺多的。今天,就让我们好好研究一下。原创 2021-07-05 00:02:46 · 652 阅读 · 0 评论 -
gomod 使用
很全的 gomod 使用手册原创 2021-05-09 23:49:52 · 482 阅读 · 0 评论 -
golang 重要知识:atomic 原子操作
原子操作:Add、CompareAndSwap、Load、Store、Swap原创 2021-07-14 23:17:32 · 5131 阅读 · 0 评论 -
golang 重要知识:定时器 timer
在 Go 里有很多种定时器的使用方法,像常规的 Timer、Ticker 对象,以及经常会看到的 time.After(d Duration) 和 time.Sleep(d Duration) 方法,今天将会介绍它们的使用方法以及会对它们的底层源码进行分析,以便于在更好的场景中使用定时器。原创 2021-07-08 23:32:39 · 1410 阅读 · 0 评论 -
golang 重要知识:context 详解
在很多的 Go 开源框架里,我们经常能看到 context 的身影,它的使用场景有很多,像超时通知,取消通知都能用到 context。今天我们就来好好的认识一下它,看看 context 的相关知识和底层原理原创 2021-07-15 07:35:33 · 855 阅读 · 0 评论 -
golang 重要知识:golang 调度
作为 go 运行时的得力助手:Scheduler,它在我们的程序底层默默的支撑着。所以懂 Go 的人,就得先懂它。本文将会细聊调度概念,调度策略,以及 go 的调度机制。当然,少不了最神秘的 GMP 模型。这一切的一切,都会为你一一揭开。原创 2021-06-14 15:48:01 · 823 阅读 · 3 评论