Go 语言核心 36 讲
3 个月带你通关 Go 语言
郝林  《Go 并发编程实战》作者,前轻松筹大数据负责人
专栏
已完结·共 55 讲
|
7.9w 人已学
|
收藏
枫林火山
感谢郝老师,作为一个初学go语言的人老师的专栏就像是effective系列一样让我从一个较高的视角进入go的世界,从标准库开始我已经逐渐跟不上了,坚持灌耳音😂。 在Go武侠世界里秘籍已经读过了,该下山去历练了,先读再抄后写,最后终成一代高手(意淫中🤣)。 最后祝您身体早日康复!
作者回复:谢谢!加油!
2019-04-18
Geek_f62433
感谢郝老师,真的是go中的核心内容了,而且与面试相关,实用性很强
作者回复:不客气,对你有帮助就好:)
2022-02-19
Berry He
非常感谢有这样的专栏出现,因公司业务需求兼职做了go,加上业务繁多没有多少时间进行系统的学习,也同样祝你身体健康,也祝所有同学能在开发的道路上一路披荆斩棘,所向披靡!
2018-12-24
我来也
祝老师早日康复! 我是今年才下定决心开始学go。有一次在Twitter上看见池大在推荐这个专栏,我就毫不犹豫的买了。(当时完全不了解池大和老师你的传奇经历)这是我在极客时间购买的第一个专栏。现在跟着学的专栏也有十几个。 刚开始学这个专栏时,就顺便在 慕课网 上找了老师的一个免费课程,跟着学了基本的语法。 今年自己用go重构了公司里的一个程序,放在了生产环境中,我自己还是蛮满意的。 谢谢老师领进门,专栏里后面系统库的知识我理解起来有困难,还需要回头多看看。 再次感谢老师!
作者回复:也谢谢你,加油!
2018-12-08
闪电瘸子
刚开始觉得作者的语言过于严谨, 读起来很费劲. 后来想想没什么不好, 我们需要轻松欢快的讲解入门, 也得有作者这样严谨学术的风格去进阶. 祝好
作者回复:谢谢。
2020-04-28
lesserror
先听一遍音频,对课程内容做个简单的了解。然后再把课程demo或者go源码文件看看,边看边结合文字说明。就很清晰明了了。
2021-09-03
清风
package main import ( "fmt" "math/rand" "sync" "time" ) type User struct { //模拟用户 mail *Mail name string } type Mail struct { //模拟邮箱 mail bool msg int sendCond *sync.Cond recvCond *sync.Cond lock sync.RWMutex } func NewMail() *Mail { m := Mail{} m.sendCond = sync.NewCond(&m.lock) m.recvCond = sync.NewCond(&m.lock) return &m } func (u *User) SendMail() { u.mail.lock.Lock() for u.mail.mail { fmt.Println(u.name + ":已经有邮件了等待接收") u.mail.sendCond.Wait() } u.mail.mail = true u.mail.msg = rand.Intn(1000000) fmt.Println(u.name + "发送了一封邮件") u.mail.lock.Unlock() u.mail.recvCond.Broadcast() //向接收者发送消息 } func (u *User) RecvMail() { u.mail.lock.Lock() for !u.mail.mail { fmt.Println(u.name + ":没有邮件,等待发送邮件") u.mail.recvCond.Wait() } u.mail.mail = false fmt.Printf("%s:收到一封邮件: %d\n", u.name, u.mail.msg) u.mail.lock.Unlock() u.mail.sendCond.Signal() } func main() { mail := NewMail() lock := make(chan struct{}, 3) use1 := User{ mail: mail, name: "jacky", } use2 := User{ mail: mail, name: "rose", } use3 := User{ mail: mail, name: "allen", } //send mail go func() { defer func() { lock <- struct{}{} }() for { use1.SendMail() time.Sleep(time.Second + time.Millisecond * time.Duration(rand.Intn(100))) } }() //recv mail go func() { defer func() { lock <- struct{}{} }() for { use2.RecvMail() time.Sleep(time.Second + time.Millisecond * time.Duration(rand.Intn(100))) } }() //recv mail go func() { defer func() { lock <- struct{}{} }() for { use3.RecvMail() time.Sleep(time.Second + time.Millisecond * time.Duration(rand.Intn(100))) fmt.Println() } }() <-lock <-lock <-lock }
2021-01-18
Geek_adf04b
相比自己看书学习,听高人讲课学习效率是真高,之前绕半天的问题,这里一张图片就讲明白了,课程买晚了。
2020-09-15
www
这篇讲解太棒了,看了lock.RLocker()的源码,又返回去看了前面第14篇讲解接口的文章。多看多写,逐步提升
2020-06-28
涛声依旧
原子操作虽然快,但使用场景有限;锁虽然使用麻烦,但使用场景较多;这是我对锁与原子操作的理解;
作者回复:是的,鱼和熊掌难以兼得。
2020-03-28
讲师

郝林

《Go 并发编程实战》作者,前轻松筹大数据负责人

郝林,《Go 并发编程实战》作者,GoHackers 技术社群发起人,前轻松筹大数据负责人。 作为一名从业 13 年有余的资深技术专家,郝林从很早就开始关注 Go 语言,是国内知名的 Go 语言技术布道者,也是 Go 语言北京用户组和 GoHackers 社群的发起人和组织者。他出版的《Go 并发...查看更多
编辑推荐
包含这门课的学习路径

Go工程师

16门课程 89.0w人学习
看过的人还看了
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 178226 人已学习

¥98¥399
Go 语言从入门到实战
蔡超
Mobvista 技术副总裁兼首席架构师,前亚马逊(中国)首席软件架构师

55讲 | 48666 人已学习

¥59¥129
Go 并发编程实战课
晁岳攀(鸟窝)
前微博技术专家,知名微服务框架 rpcx 作者

22讲 | 25377 人已学习

¥59¥99
趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师

51讲 | 129655 人已学习

¥68¥199
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 150776 人已学习

¥68¥199
OpenResty 从入门到实战
温铭
OpenResty 软件基金会第一任主席,Apache APISIX 项目 VP

52讲 | 20722 人已学习

¥59¥129