首页 Home.
-
原文:Go语言中的互斥锁和读写锁(Mutex和RWMutex) 虽然Go语言提供channel来保证协程的通信,但是某些场景用锁来显示保证协程的安全更清晰易懂。 Go语言中主要有两种锁,互斥锁Mutex和读写锁RWMutex,下面分别介绍一下使用方法,以及出现死锁的常见场景。 一、Mutex(互斥锁
2025年02月08日 -
defer语句 Go语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按defer定义的逆序进行执行,也就是说,先被defer的语句最后被执行,最后被defer的语句,最先被执行。 举个例子: func main() { fmt.Pri
2025年02月08日 -
原文:Go语言 channel进阶 - 掘金 (juejin.cn) Go channel有什么特点? channel有2种类型:无缓冲、有缓冲 channel有3种模式:写操作模式(单向通道)、读操作模式(单向通道)、读写操作模式(双向通道) | | 写操作模式 | 读操作模式 | 读写操作模式
2025年02月08日 -
准备工作:启动两个docker的MySQL服务器 docker run --name mysql_master -d -p 3306:3306 --restart unless-stopped -v /mydata/mysql_master/log:/var/log/mysql -v /mydata
2025年02月08日 -
slice 和 map 分别作为函数参数时有什么区别? slice 的结构体定义: // runtime/slice.go type slice struct { array unsafe.Pointer // 元素指针 len int // 长度 cap int
2025年02月08日 -
教学目标 1>了解NoSQL概念 2>了解Redis概念,定位,优点,缺点 3>掌握Redis常用五大类型 4>掌握Redis Key 与Value值设计 5>掌握Redis全局命令 6>掌握Redis 安全与事务操作 7>了解Redis持久化策略 8>了解Redis内存淘汰机制与过期Key清理 9
2025年02月08日 -
请问你如何实现一个goroutine池?并描述一下其实现原理 具体实现上,可以使用带缓冲通道限制goroutine的数量,并使用sync.WaitGroup等工具调度运行的goroutine。当需要执行任务时,如果池中有空闲的goroutine则由其中一个goroutine接受任务并运行;如果没有空
2025年02月08日 -
golang设计一个并发安全的高性能缓存系统 如果要设计一个并发安全的高性能缓存系统,您会如何实现?并请具体描述您的设计思路和实现细节。 好的,下面是我对于该问题的设计思路和实现细节。 首先,一个高性能缓存系统需要支持并发读写,因此我们需要使用读写锁进行并发控制,以保证线程安全和高性能。其次,为了避
2025年02月08日 -
请用golang的map进行封装,不加锁,不用sync.map,实现一个并发安全的、高性能的map 好的,我可以为您实现一个类似concurrent-map的并发安全的map,基于channel和goroutine实现,同时也是高性能的。它有三个方法:添加、获取和删除。具体实现代码如下: type
2025年02月08日 -
转载自:C#中的MySqlHelper工具类及使用方法 - jack_Meng - 博客园 (cnblogs.com) 工具类 代码如下 using MySql.Data.MySqlClient; using System; using System.Data; namespace Console
2025年02月08日