首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
asong2020
掘友等级
我是一名正努力的小小程序员
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
23
文章 23
沸点 0
赞
23
返回
|
搜索文章
最新
热门
详解interface中的类型断言是如何实现的【Golang】
Type Assertion(断言)是用于interface value的一种操作,语法是x.(T),x是interface type的表达式,而T是asserted type,被断言的类型。举个例子看一下基本使用: 上面我们声明了一个接口对象demo,通过类型断言的方式断言一…
如何平滑切换线上Elasticsearch索引
能够平滑切换线上的ES索引需要有两个先决条件,只有满足了这两个条件才能去执行接下来的平滑切换操作,否则一切操作都是白费。 重建索引的问题是必须更新应用中的索引名称,索引别名就是用来解决这个问题的。索引别名就像一个快捷方式或软连接,可以指向一个或多个索引,也可以给任何一个需要索引…
如何用golang判断大小端字节序
我一直都不理解,为什么要有大小端区分,尤其是小端,总是会忘记,因为他不符合人类的思维习惯,但存在即为合理,存在就有他存在的价值。这里有一个比较合理的解释:计算机中电路优先处理低位字节,效率比较高,因为计算机都是从低位开始的,所以计算机内部处理都是小端字节序。但是我们平常读写数值…
[Golang]context引发的一个小bug
我们先简单分析一下,这一段代码要干什么?其实很简单,我们想要获取一段信息,首先会从缓存中获取,如果缓存中获取不到,我们就从DB中获取,从DB中获取到信息后,在协程池中放入更新缓存的方法,异步去更新缓存。整个设计是不是很完美,但是在实际工作中,异步更新缓存就没有成功过? 错误的原…
[Golang]空结构体引发的大型打脸现场
看了运行结果,大多数朋友应该和我一样,一脸懵逼?Go语言不是只有值传递嘛?之前我还写过一篇关于"Go语言参数传递是传值还是传引用吗?",已经得出明确的结论,Go语言的确是只有值传递,这不是打脸了嘛。。。 猜想一有点天马行空的感觉,暂时也无法验证,所以我们先来验证猜想二,请开始我…
高并发系统的限流策略:漏桶和令牌桶(附源码剖析)
漏桶算法比较好理解,假设我们现在有一个水桶,我们向这个水桶里添水,虽然我们我们无法预计一次会添多少水,也无法预计水流入的速度,但是可以固定出水的速度,不论添水的速率有多大,都按照固定的速率流出,如果桶满了,溢出的上方水直接抛弃。我们把水当作HTTP请求,每次都把请求放到一个桶中…
源码剖析sync.cond(条件变量的实现机制)
哈喽,大家好,我是asong,这是我并发编程系列的第三篇文章,这一篇我们一起来看看sync.Cond的使用与实现。之前写过java的朋友对等待/通知(wait/notify)机制一定很熟悉,可以利用等待/通知机制实现阻塞或者唤醒,在Go语言使用Cond也可以达到同样的效果,接下…
源码剖析sync.WaitGroup(文末思考题你能解释一下吗?)
官方文档对sync.WatiGroup的描述是:一个waitGroup对象可以等待一组协程结束,也就等待一组goroutine返回。有了sync.Waitgroup我们可以将原本顺序执行的代码在多个Goroutine中并发执行,加快程序处理的速度。其实他与java中的Count…
详解并发编程基础之原子操作(atomic包)
原子(atomic)本意是"不能被进一步分割的最小粒子",而原子操作(atomic operation)意为"不可中断的一个或一系列操作"。其实用大白话说出来就是让多个线程对同一块内存的操作是串行的,不会因为并发操作把内存写的不符合预期。我们来看这样一个例子: 假设在操作一的时…
详解并发编程之sync.Once的实现(附上三道面试题)
init函数是在文件包首次被加载的时候执行,且只执行一次。 sync.Once是在代码运行中需要的时候执行,且只执行一次。 实现还是比较简单,就不细说了。 只有两个字段,字段done用来标识代码块是否执行过,字段m是一个互斥锁。 这里把注释都省略了,反正都是英文,接下来咱用中文…
下一页
个人成就
优秀创作者
文章被点赞
896
文章被阅读
231,241
掘力值
6,838
关注了
7
关注者
589
收藏集
0
关注标签
2
加入于
2020-04-22