Golang并发(四)

笔记  Go 

Golang并发(四)转载自: Golang 基础之并发goroutine(补充)前面 《Golang 基础之并发知识 (二)》 章节已经和大家简单介绍 - 掘金goroutine是go中最基本的组织单位之一。事实上,每个go程序至少有一个: main goroutine,当程序开始的时候,会自动创

Golang 并发 (三)

笔记  Go 

Golang 并发 (三)基本同步原语Go语言在sync包中提供了用于同步的一些基本原语,包括常见的互斥锁Mutex和读写互斥锁RWMutex以及Once,WaitGroup.这些基本原语的主要作用是提供较为基础的同步功能MutexMutex 是 golang 标准库的互斥锁,主要用来处理并发场景下

Golang并发(二)

笔记  Go 

Golang并发(二)参考链接:https://juejin.cn/post/7075723579303657485GMP模型Goroutine是Go语言中的协程,实现了轻量级并发,和传统的线程相比,Goroutine有以下特点:轻量级高效调度:Go运行时在用户态进行调度,避免了频繁的上下文切换带来

Golang 并发(一)

笔记  Go 

Golang 并发(一)Golang 基础之并发知识 (一)大家好,今天将梳理出的 Go 语言并发知识内容,分享给大家。 请多多指教,谢谢。 本次 - 掘金什么是并发,并行什么是原子操作原子操作可以理解为: 在进行过程中不能被中断的操作也就是说,针对某个值的原子操作在被进行的过程中,CPU 绝不会再

Golang内存逃逸

笔记  Go 

Golang内存逃逸堆内存(Heap):一般来讲是人为手动进行管理,手动申请、分配、释放。一般硬件内存有多大堆内存就有多大。适合不可预知大小的内存分配,分配速度较慢,而且会形成内存碎片。栈内存(Stack):是一种拥有特殊规则的线性表数据结构。由编译器进行管理,自动申请、分配、释放。大小一般是固定的

Golang数组与切片的区别

笔记  Go 

Golang 数组与切片的区别数组与切片的基本概念1.1 数组的定义和初始化数组是一种固定长度的数据结构,声明时需要指定长度。package mainimport "fmt"func main() {var a [3]int = [3]int{1, 2, 3}fmt.Printl

Golang 切片原理

笔记  Go 

Golang 切片原理扩容规律切片作为参数Go 语言的函数参数传递,只有值传递,没有引用传递,切片作为参数也是如此我们来验证这一点package mainimport "fmt"func main() {sl := []int{6, 6, 6}f(sl)fmt.Println(s

Go 结构体日志工具:testlogs 包详解

笔记  Go 

前言今天在写项目的时候测试函数打印结构体,发现用golang的fmt输出整个结构体的内容实在是太费劲了,而且也不美观(美观需要花费大量精力写)突然就想到,可以利用golang的反射获取tag里面的Key value作为结构体字段的说明,结构体字段作为value就写了testlog这个库说明本文将介绍

SSE练习


SSE需求当需要让服务端向客户端发送消息的时候比如实时更新状态或推荐内容相比websocket消耗资源更少,而且建立连接更方便,自带重传机制,不需要像websocket一样需要自己实现重传机制参考资料https://zh.javascript.info/server-sent-eventshttps

文件分片上传和断点续传实现

笔记  Go 

https://codeberg.org/meowrain/fileuploadwithchunk后端部分后端部分采用gin实现r.POST("/upload-chunk", uploadChunk)r.POST("/get-uploaded-chunks",