- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
新语⾔,新思维
解读⼀个并发问题的多种实现
陶召胜
next:
异步编程的问题
变量读写冲突
读、写 读、写
异步任务1 共享变量 异步任务2
IO阻塞
回调地狱
Future也有不⾜
• get 很容易导致另⼀个对象阻塞
• 不⽀持多值、⾼级错误处理
next:
多任务求解1-10,000,000的和
序号 语⾔ 关键点
1 JavaScript 不再有回调地狱,变异步为顺序化思维,程序更加可读
2 Go ⾼并发调度,通道让异步编程更简单
(1)简洁的异步编程
3 Scala
(2)AKKA :分布式计算框架
(1)fork/join
4 Java (2)CompletableFuture
(3)反应式编程(Reactive Programming )
next:
JavaScript
关键点:不再有回调地狱,变异步为顺序化思维,程序更加可读
ECMAScript 5 ECMAScript 6 ECMAScript 2017
2010年 2015年 2017年
单线程事件循环
异步,callback
例⼦JavaScript实现(Promise)
例⼦JavaScript实现(Generator)
例⼦JavaScript实现(async/await)
多进程,利⽤多核
输出:
next:
Go
关键点:⾼并发调度,通道让异步编程更简单
Go 1.5 Go1.6、1.7 Go1.8、1.9
2015年 2016年 2017年
goroutine
gorutine在逻辑处理器上执⾏
• Go运⾏时(runtime),有⾃⼰的
调度器
• 可以将⼀个goroutine分配给⼀
个OS线程并使其执⾏,或者把
它挂起⽽不与OS线程关联。
gorutine
逻辑处理器, GOMAXPROCS
OS线程, SetMaxThreads
处理阻塞
正在运⾏的 正在运⾏的
G1 G2
被阻塞的
G1
逻辑处理器 G2 逻辑处理器 G3
P0 P0
线
G3
您可能关注的文档
- IAS2017- 58速运智能派单系统的架构演进.ppt
- IAS2017- Cloud Native架构一致性问题及解决方案.pptx
- IAS2017- DevOps监控平台实践.pptx
- IAS2017- TensorFlow下的构建高性能神经网络模型的最佳实践.pptx
- IAS2017- 大数据平台架构设计.pdf
- IAS2017- 大型支付交易平台的演进历程.pdf
- IAS2017- 饿了么交易系统应用架构演进.pptx
- IAS2017- 韩玮-爱游戏SDK业务技术栈演进(Android).pdf
- IAS2017- 黄勇-轻量级微服务架构实践之路.pdf
- IAS2017- 机器学习平台的架构设计.pptx
文档评论(0)