Go 中的并发性 (Golang)
Concurrency in Go (Golang)
了解 Go 中并发的原因和方式。
您将会学到
-
如何旋转 Goroutines 并在它们之间传递数据。
-
如何避免 Race Conditions 和 Deadlocks。
-
如何同步 Goroutine 的执行。
-
Go Scheduler 的工作原理。
-
如何使用 Goroutines 和 Channel 构建流水线。
-
如何跨 API 边界传播数据。
要求
-
Go 编程语言的基本知识,如循环、函数、方法。
-
在笔记本电脑上安装 Go 编译器和任何 IDE。
描述
所有开发人员都面临的问题是,他们是否有效地利用了可用的计算资源?
课程概述
本课程可分为五个部分。
-
并发基元
-
深入了解并发基元
-
并发模式
-
上下文包
-
Bonus 部分 – 接口
在本课程中,我们尝试回答这些问题。
并发基元
-
线程有哪些限制?
-
goroutines 相对于 OS 线程有什么优势?
-
我们如何避免竞争条件?
-
如何使用通道来传输数据?
-
我们如何实现超时和非阻塞通信?
-
我们什么时候使用互斥锁和通道?
-
如何同步 goroutine 的执行?
-
如何检测 Go 中的竞争条件?
深入研究并发基元
-
Go 调度器是如何工作的?
-
上下文切换的工作原理是什么?
-
通道发送和接收是如何工作的?
并发模式
-
如何使用 Goroutines 和 Channel 构建流水线?
-
如何 Fan-out 和 Fan-in 计算密集型阶段?
-
我们如何避免 Goroutine 泄漏?
上下文包
-
我们如何跨 API 边界传播请求范围的数据和取消信号?
编码练习
-
每个概念之后都有一个编码练习。
-
练习蓝图在 Github 上共享。
示例应用程序
我们将构建
-
网络爬虫的蓝图。
-
图像处理管道。
-
使用上下文包的 HTTP 服务器超时。
Bonus 部分 – 接口
-
如何将不同对象之间的共同行为定义为抽象类型?
-
Interface 如何为更高级别的函数提供抽象?
此课程面向哪些人:
- 寻找从基础到高级的 Go 编程概念的学生
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)