推荐一本好书100 go mistakes
在你的Go代码中发现你甚至不知道自己正在犯的错误,并通过避免常见的错误和陷阱来提高你的生产力。100个Go错误以及如何避免它们向您展示了如何:躲避Go开发者最常犯的错误构建和组织您的Go应用程序有效地...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1666171388.jpeg)
goroutine调度
Go 使用称为 goroutine 的用户级线程,它比内核级线程更轻且更便宜。 例如,创建一个初始 goroutine 将占用 2KB 的堆栈大小,而内核级线程将占用 8KB 的堆栈大小。 还有,goroutine 比内...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1662974591.png)
segmentfault+answer项目全解析(一):跑通本地环境
answer项目是、一个基于开源知识的问答社区软件。您可以使用它来快速建立您的问答社区,以获得产品技术支持、客户支持、用户交流等。answer是一个比较完整的项目,后端使用的golang,特别适合想学 segmentfa...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1667746255.jpeg)
etcd实现分布式锁
* 需要保证互斥访问(分布式环境需要保证不同节点、不同线程的互斥访问) * 需要有超时机制,防止锁意外未释放,其他节点无法获取到锁;也要保证任务能够正常执行完成,不能超时了任务还没结束,导致任务执行一般被释放锁 * 需要...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1662220456.png)
go值拷贝
概念值类型值类型的数据,默认全部都是深复制,Array、Int、String、Struct、Float,Bool。引用类型引用类型的数据,返回的是值的地址,指针,切片,channel,interfac go中的值拷贝 值...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1662090388.jpeg)
go-GMP
* G — 表示 Goroutine,它是一个待执行的任务; * M — 表示操作系统的线程,它由操作系统的调度器调度和管理; * P — 表示处理器,它可以被看做运行在线程上的本地调度器; 协程调度,工作窃取...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1659707785.png)
分布式事务
分布式事务什么是本地事务ACID原子性:是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中一个SQL语句执行失败,则已执行的语句也必须回滚,数据库退回到事务前的状态。TCC,saga,可靠事...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1659714571.png)
go堆栈逃逸分析垃圾回收
堆栈一般堆栈栈一般由操作系统来分配和释放,堆由程序员通过编程语言来申请创建与释放。栈用来存放函数的参数、返回值、局部变量、函数调用时的临时上下文等,堆用来存放全局变量。我们可以这样理解数据存放的规则: 逃逸分析,垃圾回收...
继续阅读![](http://image-1313007945.cos.ap-nanjing.myqcloud.com/image/1662090586.jpeg)