前言 由于我的电脑内存太小,不想多装台虚拟机来做实验,只能租了台华为云的服务器。可惜镜像市场中的CPU 架构是aarch64的。初期下载docker-compose时,我发现官方提供的二进制包时基于amd64的。因此官方提供的二进制包不能兼容我的aarch64。 另寻他法 下载 首先安装docker…
简介 Go 的内建 map 是不支持并发写操作的,原因是 map 写操作不是并发安全的,当你尝试多个 Goroutine 操作同一个 map,会产生报错:fatal error: concurrent map writes。 因此官方另外引入了&nb…
unsafe 虽然我们程序中引入 unsafe import "unsafe" 像是引入其他使用 go 实现的包一样,unsafe 包下的功能是不是通过 go 代码实现的,而是通过编译器实现的。 unsafe 中的功能暴露了 Go 底层的实现细节,虽然 Go 是跨平台的,但是每个…
先说说官话。 线程,有时被称为轻量级进程,是操作系统调度与CPU执行的最小单位。 协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开…
一、什么是IO? 我们都知道unix世界里、一切皆文件、而文件是什么呢?文件就是一串二进制流而已、不管socket、还是FIFO、管道、终端、对我们来说、一切都是文件、一切都是流、在信息交换的过程中、我们都是对这些流进行数据的收发操作、简称为I/O操作(input and output)、往流中读出…