IAS2017- 新语言,新思维.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 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

文档评论(0)

喜宝 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档