死锁代码示例 上面这段代码执行结果为 输出报错,出现死锁。 原因分析 为了方便分析原因,我在上面的代码中打印了日志。从日志可以看出在“开始 data 通道发送”后,就中断了。可以看到后面的代码是发送M......
分类:Golang
go 锁机制
Go 语言中的锁机制是通过 sync 和 sync/atomic 包提供的。这些锁机制用于在并发编程中保护共享资源,以防止多个 goroutine 同时访问和修......
go 并发 - Goroutine和 Channel 的使用方法和技巧
Go语言的并发模型基于CSP(Communicating Sequential Processes)理论,这是一种并发编程范式,它强调通过通信来共享内存,而不是通过共享内存来通信。Go语言通过 gor......
go 指针
指针是什么 指针是编程语言中的一种数据类型,它存储的是另一个变量的内存地址,而不是变量的值本身。通过指针,你可以直接访问和修改存储在该内存地址上的数据。指针在许多编程语言中都有,包括 C、C++、Go......
go 面向对象
面向对象的三大特效:封装、继承、多态。Go 语言虽然没有传统的类和继承,但它通过结构体(struct)、方法(method)和接口(interface)实现了面向对象编程的许多特性。 结构体(Stru......
Golang Context详解:如何优雅地处理并发与超时
引言 在Go语言的并发编程世界里,context包扮演着至关重要的角色。它不仅提供了一种在多个Goroutine之间传递数据和取消信号的机制,还允许我们设置截止时间(Deadlines)和超时(Tim......
实时数据交互:用Go构建WebSocket服务器与Web前端的全双工通信实例
前言 下面我们将一步步构建一个基于Go语言的WebSocket服务器,它将与一个响应式的Web前端页面协同工作,以实现数据的实时更新和高效通信。本项目不仅涵盖了WebSocket的基础概念,还深入探讨......
go 包管理
在 Go 中,包是一种组织代码的方式,可以将相关的代码放在同一个包中,方便管理和复用。每个 Go 文件都必须属于一个包,而且包名必须与文件名或者目录名相同。通常情况下,包名应该采用小写字母,例如 fm......
go 唯一id 生成器
一般可以使用 google 开源的 uuid 来生成唯一 id github.com/google/uuid......
golang 远程开发配置
然后就可以在右侧看到远程服务器上的目录,直接进行编辑即可 参考链接: https://mlog.club/article/16041......