Tag: Go
137 total results found
目录索引
一、快速入门 开篇:Go 语言的优势和学习路线图 Go 语言零基础入门(一) —— 第一个 Go 程序 Go 语言零基础入门(...
程序员内功修炼系列教程
〇、内容介绍 针对加入学院社群的用户,学院君特别推出程序员内功修炼系列教程,内容涵盖数据结构与算法、网络协议(HTTP、TCP/I...
sync 包(五):临时对象池 sync.Pool
前面我们已经陆续介绍了 sync 包提供的各种同步工具,比如互斥锁、条件变量、原子操作、多协程协作等,今天我们来看另外一种工具。 ...
通过 context 包提供的函数实现多协程之间的协作
上篇教程学院君介绍了如何通过 sync.WaitGroup 类型优化通道对多协程协调的处理,但是现在有一个问题,就是我们在启动子协程...
sync 包(四):sync.WaitGroup 和 sync.Once
在介绍通道的时候,如果启用了多个子协程,我们是这样实现主协程等待子协程执行完毕并退出的:声明一个和子协程数量一致的通道数组,然后为每...
sync 包(三):原子操作
中断与原子操作 我们在前两篇教程中讨论了互斥锁、读写锁以及基于它们的条件变量。互斥锁是一个同步工具,它可以保证每一时刻进入临界区的...
sync 包(二):条件变量 sync.Cond
sync 包还提供了一个条件变量类型 sync.Cond,它可以和互斥锁或读写锁(以下统称互斥锁)组合使用,用来协调想要访问共享资源...
sync 包(一):sync.Mutex 和 sync.RWMutex
sync 包 我们前面反复强调,在 Go 语言并发编程中,倡导「使用通信共享内存,不要使用共享内存通信」,而这个通信的媒介就是我们...
利用多核 CPU 实现并行计算
开始之前,我们先澄清两个概念,「多核」指的是有效利用 CPU 的多核提高程序执行效率,「并行」和「并发」一字之差,但其实是两个完全不...
通道类型篇(四):错误和异常处理
在前面几篇通道教程中,我们陆续介绍了与通道相关的基本语法、单向通道以及 select 语句,有关通道的基本知识就介绍到这里,今天我们...
通道类型篇(三):通过 select 语句等待通道就绪
Go 语言还支持通过 select 分支语句选择指定分支代码执行,select 语句和之前介绍的 switch 语句语法结构类似,不...
Golang 中互斥锁与读写锁的简单使用
简述 Golang中的锁机制主要包含互斥锁和读写锁 互斥锁 互斥锁是传统并发程序对共享资源进行控制访问的主要手段。在Go中主要使用 ...
通道类型篇(二):单向通道及其使用
上篇教程我们介绍了管道类型的基本语法,通常,管道都是支持双向操作的:既可以往管道发送数据,也可以从管道接收数据。但在某些场景下,可能...
通道类型篇(一):基本语法和缓冲通道
在上篇教程中,学院君给大家演示了如何通过通道(channel)传递消息实现 Go 协程间的通信, 接下来,我们将通过几篇教程的篇幅来...
Go 协程通信实现(下)—— 通过 channel 进行消息传递
上篇教程学院君演示了如何通过共享内存实现协程通信,不过这种方式太过繁琐,且维护成本高,Go 语言推荐使用消息传递实现并发通信,这种消...