解密 Go 协程的栈内存管理

我们可以通过修改一下源码文件 runtime.stack.go ,把常量 stackDebug 的值修改为1,使用命令 go build -gcflags -S main.go 运行文章最开始的那个例子,观察栈的初始化和扩容过程:stackalloc 2048。

Golang 1.9新特性 sync.map

到Go1.9发布后有了新特性,有了sync.map,它是原生支持并发安全的map。不过它的用法和以前我们熟悉的map完全不一样,因为sync.map封装了更为复杂的数据结构,以实现比之前加锁map更优秀的性能。

多线程编程是后台开发人员的基本功

这里先给大家分享一个小故事:在我刚开始参加工作的那年,公司安排我开发一款即时通讯软件(IM,类似于 QQ 聊天软件),在这之前我心里也知道如果多线程操作一个整型值是要加锁的,但是当时为了图代码简便,而且在实际调试的时候,没有加锁的代码也从来没出过问题。

大厂必背 MySQL优化面试题

随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能、高并发和高可用的系统。

网站地图