可视化学习 Go 并发编程## 可视化学习 Go 并发编程 2017.8.5 黄庆兵 - 网易 bingohuang.com ## 并发 简单来说,并发是一种构造程序的方式  ## Concurrency is not Parallelism Slide (http://talks ents/9/d/7/e/9d7ec6880e87f715ac8d1b4b792dd0b8/p3_1.jpg) 1. 并发很强大 2.并发帮助实现并行,使并行(扩展等)变得容易 3. 并发不是并行,并发重点是架构,并行重点是执行,两者不同,但相关。 ## 可视化 并发(Concurrency) & 并行(Parallelism) 一图胜千言! • 并行(PARALLELISM) html) • 并发(CONCURRENCY) 这是并发 (/2017/go-concurrency-visualize/pingpong36.html) 为什么要关注并发?当今是多核的时代,并发的世界 ## 多核的时代  并发编程并不容易,但0 码力 | 29 页 | 1.48 MB | 2 年前3
1.6 Go并发编程实践 - 晁岳攀Go并发编程实践 晁岳攀 @colobu 微博 http://colobu.com 探探 Gopher China 2019 Agenda 基本同步原语 扩展同步原语 原子操作 Channel 内存模型 ’ alt=‘OCR图片’/> 基本同步原语 ’ alt=‘OCR图片’/> 基本同步原语 Mutex 互斥锁 Mutual exclusion, 任何 start&mutexStarving == mutexStarving } ’ alt=‘OCR图片’/> 基本同步原语 RWMutex 可以被一堆的reader持有,或者被一个writer持有 适合大并发read的场景 零值是未加锁的状态 writer的Lock相对后续的reader的RLock优先级高 禁止递归读锁 ’ alt=‘OCR图片’/> 基本同步原语 RWMutex - //多了一次Done wg.Wait() fmt.Println(atomic.LoadInt64(&count)) ’ alt=‘OCR图片’/> 基本同步原语 Waitgroup - Add和Wait并发调用 for i := 0; i < 100; i++ { go func() { for { wg.Add(1)0 码力 | 82 页 | 16.62 MB | 1 月前3
从高并发到极端并发:百度 Feed 与春晚红包的高可用实践-吴永巍## 从高并发到极端并发: 百度Feed与春晚红包的高可用实践 吴永巍 百度 主任架构师 # TGO鲲鹏会 # 汇聚全球科技领导者的高端社群 全球12大城市 850+高端科技领导者 使命 Mission 为社会输送更多优秀的 科技领导者 ## 愿景 Vision 构建全球领先的有技术背景 优秀人才的学习成长平台  ## 目录 • 春晚项目,技术挑战 - 整体拆解,架构设计 - 各子系统高可用设计 • Feed信息流:常规到极端 全方位工程实践 ## 春晚,极端并发,技术实力最高级别的检验 • 春晚的力量 • 业界技术难题 现场直播,没有重来的机会 - 不仅仅是摇一摇红包 ✓信息流 + 视频 ✓语音 + 搜索 ## 摇一摇红包 ![Image] jpg) ## 春晚项目的技术挑战 • 从 “高并发” 到 “极端并发” • 万一出问题,负面影响不可挽回,需要“万无一失” • 只有短短一个月的准备时间 • 结合AI、推荐、搜索、视频等多项技术,复杂度高 每秒千万级并发 数亿用户参与 208亿次互动 ## 极端并发下的架构设计理念 • 从数万QPS的“高并发”到数千万QPS的“极端并发” √大量的技术沉淀和积累 √针对性的专项设计0 码力 | 28 页 | 58.98 MB | 2 年前3
1.5 Go 语言构建高并发分布式系统实践## go语言并发编程实践 以360消息推送系统为例 周洋 部门:360手机助手 Weibo: @johntech-o Date: 2015.04.25 ## 目录 go语言在基础服务开发领域的优势? 我遭遇了哪些挑战? 如何应对的? 具有go特色的运维 在高并发,通信交互复杂,重业务逻辑的分布式系统中,Go语言优势体现在:开发体验好、一定量级下服务稳定、性能满足需要 ## 以360消息推送系统为例 |08|单播-指定用户在线-发送在线消息\_0|单播 1.用户建立长连接检查状态为在线 2.用单播接口发送在线消息 4.用3.检查用户是否收到消息(预期能收到)|PASS|log||53| ## 总结回顾 go语言在基于并发协作的,重业务逻辑的基础服务方向非常适用 适用 = 开发体验好 + 服务稳定 + 性能满足需要 go语言程序开发需要找到一种平衡,既利用协程带来的便利性又做适当集中化处理 套路 = 按请求和业务逻辑并行0 码力 | 39 页 | 5.23 MB | 2 年前3
Rust 异步并发框架在移动端的应用 - 陈明煜CHINA CONF 2023 第三届中国 Rust 开发者大会 6.17-6.18 @Shanghai # Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 ## 😍 ## Rust 异步并发框架在移动端的应用 Applications of Rust Runtime in Mobile ) //创建100个并发任务,每个任务都会阻塞5秒 (1 to 100).map(i => { println(s"Calling blocking Future: ${i}") Future { //阻塞5秒,模拟I/O阻塞 println(s"Blocking future finished ${i}") } }) //这是另一个并发任务,因为线程被大量I/O阻塞导致这个任务很少有机会得到执行 Future { (1 to 100).map(i => println(s"another a future0 码力 | 42 页 | 9.85 MB | 2 年前3
Go 101 (Golang 101) v1.21.00 码力 | 880 页 | 833.34 KB | 2 年前3
Go Programming0 码力 | 60 页 | 1.04 MB | 2 年前3
2.Go语言实现中的几个研究课题_毛康力7ef5c/p3_1.jpg) ## 大纲 - 并发 - 接口 - 垃圾回收 - 调度 - 死锁检测 ## 并发  ## 并发 • goroutine提供轻量的并发机制 • channel用于goroutine之间通信 ents/3/2/1/3/32132c9fc13966e18aaaa130ac07ef5c/p13_1.jpg) - 研究课题:能否实现lock-free channels? ## 大纲 - 并发 - 接口 - 垃圾回收 - 调度 - 死锁检测 ## 接口 • 接口定义了一系列方法 - 如果类型实现了这些方法,它就实现了这个接口 • 接口不依赖实现 - 避免了过度设计,比如OO里面基于继承的方式 1.jpg) • C++把同一个函数(的不同类型)实现了很多遍。(编译器累) - Java把所有东西都打包了,只有一个函数。(运行时累) - 研究课题:怎么样实现才合理? ## 大纲 - 并发 - 接口 - 垃圾回收 - 调度 - 死锁检测 ## 垃圾回收 • 王尼玛:内存管理太重要!交给机器我不放心 • 曹尼玛:内存管理太重要!给王尼玛管我不放心 Go还是很体贴大伙的~0 码力 | 37 页 | 566.26 KB | 2 年前3
Go Context原理及其典型适用场景# Context原理及其适用场景 随手记 李帅(飞雪无情) ___ ¥ 随手记 👨👩👧👦 卡牛 📸 随管家 ___ ## 大纲 常见并发模式 ■ Context实现原理 ☑ TLS VS Context ☑ 典型适用场景 ## Channel func add(a,b int) <-chan int{ sum:=make(chan int) go0 码力 | 32 页 | 4.62 MB | 2 年前3
共 727 条
- 1
- 2
- 3
- 4
- 5
- 6
- 73













