go

使用gin搭建api后台系统之redis

redis 在web系统中有着非常重要的地位,可以充当缓存,消息队列,分步式锁等,本文介绍一下使用go-redis这个库来简单地操作redis。 环境准备 使用docker 本地启一个redis docker run --name myredis -p 63...

golang中map与切片的函数传参

在golang 的函数参数,如果参数是值类型的话,如果在函数中修改参数值是不会影响原变量的,因为在函数操作中是会进行一次值拷贝的,如果希望函数的修改影响原变量,则需要传指针方式。如以下代码,是不会改变原变...

golang中的锁

在golang中,goroutine 可以理解为其它语言中的线程,在其它语言中存在的数据竞态的问题,在golang中同样存在 本文记录一下数据竞态与各种锁的使用 race condition 竞争状态 这个词也没有听起来很高大上,...

golang中锁Mutex与通道channel的选择

Mutex和channel 都可以在并发环境下对资源进行保护,避免竞态, channel 在 golang 中一直被追捧,但是既然都能解决问题,但为什么还要弄两个东西呢? 查阅一些文章,发现有些时候对于channel过于追捧了。有时...

go语言并发

go语言并发 //启动多个groutine var wg sync.WaitGroup //一个计数器一样的东西,用来统计gorountine的启动数量. func hello(i int) { defer wg.Done() fmt.Println("hello Goroutine!", i) }...

go语言 flag用法

go语言flag用法之一 package main import ( "flag" "log" ) var name string func main() { flag.Parse() //将命令解析为定义的标志,一遍后续的参数使用 args := flag.Args() //将传入...