10 2021 档案
摘要:什么是 map 维基百科里这样定义 map: In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection o
阅读全文
摘要:前言 在golang中有很多的数据结构是很常用的数据结构,比如array,slice,map等,其中最为常用的就是array和slice还有map了,理论上来讲array和slice在数据结构上是一种结构,都是顺序结构,但是由于array的固定长度特性,在有些时候对于需要动态的长度的使用情况很不友
阅读全文
摘要:它是一种基本类型,并且是一个不可改变的UTF-8字符序列 回过来看 GO 里面的字符串,字符也是根据英文和中文不一样,一个字符所占用的字节数也是不一样的,大体分为如下 2 种 英文的字符,按照ASCII 码来算,占用 1 个字节 其他的字符,包括中文字符在内的,根据不同字符,占用字节数是 2 --
阅读全文
摘要:sync.Mutex是一个不可重入的排他锁。 这点和Java不同,golang里面的排它锁是不可重入的。当一个 goroutine 获得了这个锁的拥有权后, 其它请求锁的 goroutine 就会阻塞在 Lock 方法的调用上,直到锁被释放。 数据结构与状态机 sync.Mutex 由两个字段 st
阅读全文
摘要:源码展示 这里展示了 net/http 包的两个接口的源码:ListenAndServe、Serve ListenAndServe接口做了以下事情: 设置地址类型 生成侦听器 开启Serve func (srv *Server) ListenAndServe() error { if srv.shu
阅读全文
摘要:Go 语言是一门简单、易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的事情,对于之前有过其他语言经验的开发者来说,写什么语言都像自己学过的语言其实是有问题的,想要真正融入生态写出优雅的代码就一定要花一些时间和精力了解语言背后的设计哲学和最佳实践。 如果
阅读全文
摘要:GM模型 第一个M怎么来的?,G怎么找到对应的P? 1. 系统启动的时候,首先跑的是主线程,那第一个M应该就是主线程吧M1 2. 然后这个主线程会绑定第一个P1 3. 咱们写的main函数,其实是作为一个goroutine来执行的(雨痕说的) 4. 也就是第一个P1就有了一个G1任务,然后第一个M1
阅读全文
摘要:一、什么是websocket Websocket是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手 ,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。即:websocket分为握手和数据传输阶段,即进行了HTTP握手 + 双工的TCP连接。 下面我们分别来看一
阅读全文