加载中
面试中如果这样写二分查找!

前言 哈喽,大家好,我是asong。今天与大家分享一下Go标准库sort.Search是如何实现二分查找的,为什么突然想到分享这个函数呢。起因是这周在刷leetcode的一道题时,需要使用到二分查找,最开...

06/15 08:15
0
源码剖析Go语言的timer

本篇文章剖析下 Go 定时器的相关内容。定时器不管是业务开发,还是基础架构开发,都是绕不过去的存在,由此可见定时器的重要程度。 我们不管用 NewTimer, timer.After,还是 timer.AfterFun...

神奇的init函数

前言 哈喽,兄弟们,我是asong。今天与大家聊一聊Go语言中的神奇函数init,为什么叫他神奇函数呢?因为该函数可以在所有程序执行开始前被调用,并且每个包下可以有多个init函数。这个函数使用...

Go语言如何实现可重入锁?

前言 哈喽,大家好,我是asong。前几天一个读者问我如何使用Go语言实现可重入锁,突然想到Go语言中好像没有这个概念,平常在业务开发中也没有要用到可重入锁的概念,一时懵住了。之前在写jav...

Go语言中new和make你使用哪个来分配内存?

前言 “ 哈喽,大家好,我是拖更好久的鸽子asong。因为5.1去找女朋友,所以一直没有时间写文章啦,想着回来就抓紧学习,无奈,依然沉浸在5.1的甜蜜生活中,一拖再拖,就到现在啦。果然女人影...

面试官:两个nil比较结果是什么?

背景 哈喽,大家好,我是asong。前几天在一个交流群里看到了一道非常有意思的面试题,今天把它分享出来,我们先来看一下这个道题: fmt.Println(nil== nil) 两个nil的比较结果是什么? true...

有趣的面试题:Go语言字符串的字节长度和字符个数

背景 哈喽,大家好,我是asong。今天我们一起来看看Go语言中的rune数据类型,首先从一道面试题入手,你能很快说出下面这道题的答案吗? func main() { str := "Golang梦工厂" fmt.Println(l...

源码剖析类型断言是如何实现的!附性能损耗测试

前言 ★ 哈喽,everyBody,我是asong,今天我们一起来探索一下interface的类型断言是如何实现的。我们通常使用interface有两种方式,一种是带方法的interface,一种是空的interface。因为Go中...

如何平滑切换线上Elasticsearch索引

前言 哈喽,大家好,我是asong,今天与大家聊一聊如何平滑切换线上的ES索引。使用过ES的朋友们都知道,修改索引真的是一件费时又费力的工作,所以我们应该在创建索引的时候就尽量设计好索引能...

面试官:你能用Go写段代码判断当前系统的存储方式吗?

前言 哈喽,大家好,我是asong。今天想与大家聊一聊计算机硬件中的两种储存数据的方式:大端字节序(big endian)、小端字节序(little endian)。老实说,我第一次知道这个概念还是在学习单...

context使用不当引发的一个bug

背景 哈喽,everybody,小松子,再次回归,最近工作比较忙,好久都没有更新文章了,接下来会进行补更。今天与大家分享一个日常开发比较容易错误的点,那就是contxt误用导致的bug,我自己就因...

空结构体引发的大型打脸现场

背景 哈喽,大家好,我是正在学习PS技术的asong,上周读者问了我一道题,觉得挺有意义的,就在这里分享一下,我们先来看一下这个题: type User struct { } func FPrint(u User) { fmt.Print...

高并发系统的限流策略:漏桶和令牌桶(附源码剖析)

前言 哈喽,大家好,我是正在学习PS技术的asong,这是我并发编程系列的第5篇文章,今天与大家聊一聊高并发系统中的限流技术,限流又称为流量控制,是指限制到达系统的并发请求数,当达到限制...

源码剖析sync.cond(条件变量的实现机制)

前言 哈喽,大家好,我是asong,这是我并发编程系列的第三篇文章,这一篇我们一起来看看sync.Cond的使用与实现。之前写过java的朋友对等待/通知(wait/notify)机制一定很熟悉,可以利用等待/...

源码剖析sync.WaitGroup(文末思考题你能解释一下吗?)

前言 哈喽,大家好,我是asong,这是我并发编程系列的第三篇文章,上一篇我们一起分析了sync.once的使用与实现,今天我们一起来看一看sync.WaitGroup的使用与实现. 快过年了,这是年前最后一...

go
02/08 08:10
97
Go看源码必会知识之unsafe包

前言 有看源码的朋友应该会发现,Go标准库中大量使用了unsafe.pointer,要想更好的理解源码实现,就要知道unsafe.pointer到底是什么?所以今天就与大家来聊一聊unsafe包。 什么是unsafe 众所...

详解并发编程之sync.Once的实现(附上三道面试题)

哈喽,大家好,我是asong,这是我并发编程系列的第二篇文章. 上一篇我们一起分析了atomic包,今天我们一起来看一看sync/once的使用与实现. 什么是sync.once Go语言标准库中的sync.Once可以保...

详解并发编程基础之原子操作(atomic包)

前言 嗨,大家好,我是asong。最近想写一个并发编程系列的文章,使用Go也有一段时间了,但是对并发的理解不是很透彻,借着这次总结,希望能更进一步。我们以"原子操作"开篇,对于并发操作而言...

源码剖析panic与recover,看不懂你打我好了!

前言 哈喽,大家好,我是asong,今天与大家来聊一聊go语言中的"throw、try.....catch{}"。如果你之前是一名java程序员,我相信你一定吐槽过go语言错误处理方式,但是这篇文章不是来讨论好坏的...

go
01/23 16:10
197
踩坑日志之elasticSearch

前言 上周六马上就下班了,正兴高采烈的想着下班吃什么呢!突然QA找到我,说我们的DB与es无法同步数据了,真是令人头皮发秃,好不容易休一天,啊啊啊,难受呀,没办法,还是赶紧找bug吧。下面...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部