首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
机器铃砍菜刀
掘友等级
欢迎关注 :Golang技术分享
欢迎关注:Golang技术分享
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
2
文章 2
沸点 0
赞
2
返回
|
搜索文章
最新
热门
Golang 中 defer Close() 的潜在风险
作为一名 Gopher,我们很容易形成一个编程惯例:每当有一个实现了 io.Closer 接口的对象 x 时,在得到对象并检查错误之后,会立即使用 defer x.Close() 以保证函数返回时 x
一文读懂 Go sync.Cond 设计
Go 语言通过 go 关键字开启 goroutine 让开发者可以轻松地实现并发编程,而并发程序的有效运行,往往离不开 sync 包的保驾护航。目前,sync 包的赋能列表包括: sync.atomi
详解 Go 中 WaitGroup 源码设计
Go语言提供的协程goroutine可以让我们很容易地写出多线程程序,但是,如何让这些并发执行的goroutine得到有效地控制,这是我们需要探讨的问题。正如小菜刀在《Golang并发控制简述》中所述
Go函数调用惯例
本文旨在探讨Go函数中的一个问题:**为什么Go函数能支持多参数返回,而C/C++、java不行?**这其实牵涉到了一个叫做函数调用惯例的问题。 调用惯例 在程序代码中,函数提供了最小功能单元,程序执
如何有效地测试Go代码
单元测试 如果把开发程序比作盖房子,那么我们必须确保所有的用料都是合格的,否则盖起来的房子就会存在问题。对于程序而言,我们可以将盖房子的砖头、钢筋、水泥等当做一个个功能单元,如果每个单元是合格的,我们
Go append 扩容机制
在《切片传递的隐藏危机》一文中,小菜刀有简单地提及到切片扩容的问题。在读者讨论群中,有人举了以下例子,想得到一个合理的回答。 为什么结果不是5,不是8,而是6呢?由于小菜刀在该文中关于扩容的描述不够准
Golang 读写锁设计
在《Go精妙的互斥锁设计》一文中,我们详细地讲解了互斥锁的实现原理。互斥锁为了避免竞争条件,它只允许一个线程进入代码临界区,而由于锁竞争的存在,程序的执行效率会被降低。同时我们知道,只有多线程在共享资
Go精妙的互斥锁设计
Some people, when confronted with a problem, think, “I know, I’ll use threads,” and then two they hav erpoblesms. 多线程程序在多核CPU机器上访问共享资源时,难免会…
Go同步原语的基石
Go是一门以并发编程见长的语言,它提供了一系列的同步原语方便开发者使用,例如sync包下的Mutex、RWMutex、WaitGroup、Once、Cond,以及抽象层级更高的Channel。但是,它们的实现基石是原子操作。需要记住的是:软件原子操作离不开硬件指令的支持。本文拟…
详解Go内联优化
为了保证程序的执行高效与安全,现代编译器并不会将程序员的代码直接翻译成相应地机器码,它需要做一系列的检查与优化。Go编译器默认做了很多相关工作,例如未使用的引用包检查、未使用的声明变量检查、有效的括号检查、逃逸分析、内联优化、删除无用代码等。本文重点讨论内联优化相关内容。 在《…
下一页
个人成就
文章被点赞
44
文章被阅读
22,455
掘力值
731
关注了
0
关注者
37
收藏集
0
关注标签
2
加入于
2020-10-30