字节青训营Go语言学习第二天-Go语言进阶与依赖管理

并行VS并发

在这里插入图片描述
并发指的是多线程在一个CPU上运行,而并行是直利用多核来实现多线程。
在这里插入图片描述
内核是系统里比较昂贵的系统资源,它的创建、切换停止都是很重的系统操作,而协程可以理解为轻量级的线程

Goroutine

在这里插入图片描述
在一个函数前加上go关键字就能为一个函数创建一个协程来运行
正因为Go协程有这种调度机制,所以我们开篇那个例子,循环并不会等待打印操作执行完再创建下一个协程,而是直接进行下一个循环,立刻创建新协程,一共创建了10个协程。而这10个协程的调度时机又是不确定的,所以打印的所以我们也没有办法确认最终的打印顺序。
Goroutine上
Goroutine下

CSP

在这里插入图片描述

Channel

在这里插入图片描述
这是一个引用类型。
无缓冲通道就是同步通道,解决同部问题的方式就是使用有缓冲通道
在这里插入图片描述

这个是并发安全的,什么是并发呢
CPU在同一时间只能运行一个任务,只是多个任务之间切换的速度较快,我们看起来好像是同时在运行的,这个就叫做并发。而并行则是完完全全在同一时刻,能够执行多个任务。在多核CPU的时代,我们就可以做到并行。
由于生产者速度快,消费者速度慢,因此利用带缓冲的队列,就能同步。
通道make的第二个参数
并发编程

并发安全Lock

在这里插入图片描述

WithGroup

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先开启五个协程就add(5)然后在每个子协程结束后调用Done()方法减1, 最后用wait方法达成阻塞。

Go依赖管理

在这里插入图片描述

GoPath

在这里插入图片描述
在这里插入图片描述

Go Vendor

在这里插入图片描述
在这里插入图片描述

Go Module

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
commit第二部分是一个时间戳,后面是12位的哈希码的前缀。
在这里插入图片描述
没有直接依赖的话会标识出来
在这里插入图片描述
标识出来可能会存在不相容的代码逻辑。
在这里插入图片描述

依赖分发-回源

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值