偶尔有人问我:“你为什么喜欢Go?”而我经常提到的一件事是:作为go命令的一部分,与语言一起存在的实用工具。有一些我每天使用的工具,比如go fmt和go build,还有一...
偶尔有人问我:“你为什么喜欢Go?”而我经常提到的一件事是:作为go命令的一部分,与语言一起存在的实用工具。有一些我每天使用的工具,比如go fmt和go build,还有一...
本文是关于使用Go的encoding/json包时需要注意的一些会让人迷惑的内容。如果您仔细地阅读官方包文档,就会发现其中有许多内容都提到了,所以从理论上讲,这些内容应该不会...
隔离级别主要用于ACID中的“I”属性,即隔离。让我们快速回顾一下ACID属性。 A-原子性:它表示事务中的所有指令都应该以原子方式发生。原子性仅仅意味着它不能被分解,因此事...
优雅关闭的目的是让运行的Go应用程序停止接收新请求,同时在最终关闭之前完成正在进行的请求。这通常发生在滚动更新中。新的服务准备就绪后,旧服务才停止。 通常情况下,服务会在收到...
Docker 17.05版本以后,新增了Dockerfile多阶段构建。所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个FROM指令。这样做有什么意义呢? 老...
今天再看 timer 源码的时候,在函数 clearDeletedTimers()[https://github.com/golang/go/blob/go1.16.2/sr...
本文最新版本请查看原文:https://blog.haohtml.com/archives/29385[https://blog.haohtml.com/archives/2...
G、P、M 三者是golang实现高并发能的最为重要的概念,runtime 通过 调度器 来实现三者的相互调度执行,通过 p 将用户态的 g 与内核态资源 m 的动态绑定来执...
在Go1.14版本开始实现了 基于信号的协程抢占调度 模式,在此版本以前执行以下代码是永远也无法执行完成。 原因很简单:在main函数里只有一个CPU,从上到下执行到 tim...
在上篇中,我们已经讨论过如何去实现一个 Map 了,并且也讨论了诸多优化点。在下篇中,我们将继续讨论如何实现一个线程安全的 Map。说到线程安全,需要从概念开始说起。 线程安...
原文链接:https://blog.csdn.net/chenguolinblog/article/details/90691127 前言 Golang sync包提供了基础...
前一段时间项目中有用到内支付功能,虽然之前有接触过,但都是别人把内购申请整个流程都做完了,我只需要写代码实现具体内购功能就行,但这一次我是完完全全走了一边内购的流程,从APP...