1. 什么是边界检查? 边界检查,英文名 Bounds Check Elimination,简称为 BCE。它是 Go 语言中防止数组、切片越界而导致内存不安全的检查手段。如果检查下标已经越界了,就会产生 Panic。 边界检查使得我们的...
Golang 教程
零基础学 Go 语言(38):学习一些常见的并发模型
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 本篇内容主要是了解下并发编程中的一些概念,及讲述一些常用的并发模型都是什么样的,从而理解 Golang 中的 协程在这些众多模型中是一种什么样的...
零基础学 Go 语言(37):理解 Go 语言中的 Context
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 1. 什么是 Context? 在 Go 1.7 版本之前,context 还是非编制的,它存在于 golang.org/x/net/context 包中。 后来,Golang 团队发现 context ...
零基础学 Go 语言(36):如何手动实现一个协程池?
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 在 Golang 中要创建一个协程是一件无比简单的事情,你只要定义一个函数,并使用 go 关键字去执行它就行了。 如果你接触过其他语言,会发现你在使...
零基础学 Go 语言(35):信道死锁经典错误案例
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 刚接触 Go 语言的信道的时候,经常会遇到死锁的错误,而导致这个错误的原因有很多种,这里整理了几种常见的。 fatal error: all goroutines are ...
零基础学 Go 语言(34):互斥锁和读写锁
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 在 「4.3 学习 Go 协程:详解信道/通道」这一节里我详细地介绍信道的一些用法,要知道的是在 Go 语言中,信道的地位非常高,它是 first class 级...
零基础学 Go 语言(33):学习协程中的 WaitGroup
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 在前两篇文章里,我们学习了 协程 和 信道 的内容,里面有很多例子,当时为了保证 main goroutine 在所有的 goroutine 都执行完毕后再退出,我使...
零基础学 Go 语言(32):详解信道/通道
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 Go 语言之所以开始流行起来,很大一部分原因是因为它自带的并发机制。 如果说 goroutine 是 Go语言程序的并发体的话,那么 channel(信道) 就是...
零基础学 Go 语言(31):学习 Go 协程 goroutine
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 说到Go语言,很多没接触过它的人,对它的第一印象,一定是它从语言层面天生支持并发,非常方便,让开发者能快速写出高性能且易于理解的程序。 在...
零基础学 Go 语言(30):理解 Go 里的函数
查看本系列教程目录,请点击 零基础小白入门 Go语言 系列教程 1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构。将一段功能复杂、很长的一段代码封装成多个代码片段(即函数),有助于提高代码...