自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 go chan

go 语言天然支持并发,可以通过简单的开启轻量的协程到达,但是多个goruting之间是怎样通信呢,常用的通信模块有共享内存,管道,消息队列通信,Go依赖于成为CSP的并发模型,channel 作为go的一种类似管道,通过它可以在goroutine之间发送和接收消息。通过Channel实现这种同步模式它是Golang在语言层面提供的goroutine间的通信方式。基本使用1.声明和创建ch := make(chan elemType ,cap) //初始化var ch1 ...

2022-01-13 14:19:23 260

原创 go sync.Mutex

并发编程中,不免涉及到共享资源的操作,go也提供简易的互斥锁作为访问控制的手段sync.Mutex,通过简单的Lock()进行加锁,Unlock()进行释放。接下来我们从源码入手,看看加锁和解锁到底做了什么。1.sync.Mutex结构// A Mutex is a mutual exclusion lock.// The zero value for a Mutex is an unlocked mutex.//// A Mutex must not be copi...

2022-01-10 15:54:27 413

原创 go map

前言编程语言中,需要一些存储的复合数据结构,需要快速的支持查找(O(1)),插入,删除等应用场景,比如比如java里的HashMap,python里的Dictionary,scala里的各种Map,go也原生提供了一个类似的数据类型,就叫做map。首先它是个mutable的,也就是说,可以随时对其进行修改。其次,它不是线程安全的。基本使用1.初始化和声明var mapName map[KeyType]ValueType其中mapName是变量名称,keyType是键的类型,valu

2022-01-05 16:52:54 399

原创 go slice

go 中切片,

2021-12-29 11:52:37 229

原创 go defer

前言 程序运行过程中,往往都需要申请资源,比如数据库连接,文件句柄等,程序运行资源使用结束后,需要释放资源,很多语言都有类似在某结束时机统一的去释放,比如析构函数这类的设计,go的话也提供了类似的设计即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行, 最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。defer执行时机:函数返...

2021-12-24 15:10:52 479

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除