可视化学习 Go 并发编程Go 并发编程 2017.8.5 黄庆兵 - 网易 bingohuang.com 并发 简单来说,并发是一种构造程序的方式 Concurrency is not Parallelism Slide (http://talks.golang.org/2012/waza.slide) 1. 并发很强大 2. 并发帮助实现并行,使并行(扩展等)变得容易 3. 并发不是并行,并发重点是 ,两者不同,但相关。 04:22 / 31:21 可视化 并发(Concurrency) & 并行(Parallelism) 一图胜千言! 并行(PARALLELISM) 这是并行 (/2017/go-concurrency-visualize/parallelism.html) 并发(CONCURRENCY) 这是并发 (/2017/go-concurrency-visualize/pingpong36 /pingpong36.html) 为什么要关注并发?当今是多核的时代,并发的世界 多核的时代 并发编程并不容易,但 Go 对并发有很好的支持 Go 语言中的并发 goroutine - 并发执行 channel - 同步和消息传输 select - 多路并发控制 Goroutine 类似于 UNIX 中的 & 很像线程,但更轻量 一个 goroutine 就是一个独立运行的函数0 码力 | 29 页 | 1.48 MB | 1 年前3
从高并发到极端并发:百度 Feed 与春晚红包的高可用实践-吴永巍从高并发到极端并发:百度 Feed 与春晚红包的高可用实践-吴永巍0 码力 | 28 页 | 58.98 MB | 1 年前3
Go Web编程《Go Web 编程》 《Go Web 编程》 因为自己对Web开发比较感兴趣,所以最近抽空在写一本开源的书籍《Go Web编程》《Build Web Application with Golang》。写这本书不表示我能力很强,而是我愿意分享,和大家一起分享Go写Web应用的一些东西。 对于从PHP/Python/Ruby转过来的同学了解Go怎么写Web应用开发的 对于从C/C++转过来的同学了解Web到底是怎么运行起来的 这样读者就可以把相应的Markdown文件编译成html文件,执行go build build.go,执行生成的文件,就会在底目 录下生成相应的html文件 交流 交流 欢迎大家加入QQ群:259316004 《Go Web编程》专用交流群 大家有问题还可以上德问上一起交流学习:http://www.dewen.org/topic/165 致谢 致谢 首先要感谢Golang-China的QQ群102319854 Go开发工具 1.5. 小结 2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的http包详解 3.5 小结 4.表单 4.10 码力 | 295 页 | 5.91 MB | 1 年前3
1.5 Go 语言构建高并发分布式系统实践Weibo: @johntech-o Date: 2015.04.25 go语⾔言并发编程实践 以360消息推送系统为例 如何应对的? go语⾔言在基础服务开发领域的优势? 我遭遇了哪些挑战? ⺫⽬目录 具有go特⾊色的运维 在⾼高并发,通信交互复杂,重业务逻辑的分布式系统中, Go语⾔言优势体现在:开发体验好 、⼀一定量级下服务稳定 测试环境,可以通过300w⻓长连接压测(⺴⽹网络,连接稳定,⽆无带宽限制,实际可以更⾼高 ,决定于⼲⼴广播时候业务内存开销的cpu消耗带来的⼼心跳或者业务延时能否接受) 以360消息推送系统为例 ⾼高并发、通信交互复杂 Dispatcher Service Room Service Proxy Service Register Service Saver Service � �/ ����/ ���� Admin���� ���������� �������� ������� ���push������ ������ 消息系统规模架构:重业务逻辑 ⾼高并发、通信交互复杂 Dispatcher Service Room Service Proxy Service Register Service Saver Service0 码力 | 39 页 | 5.23 MB | 1 年前3
Rust 异步并发框架在移动端的应用 - 陈明煜第三届中国 Rust 开发者大会 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 本科就读加州大学圣地亚哥分校,毕业时长两年半, Rustacean 在 华为 目前正在使用 Rust 开发并行调度框架等模块。 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com Ylong Runtime 并发框架 目录 Table of Contents #2 社区并发框架介绍以及与移动端的不适配性 Introduction to third party Runtime crates and their incompatibility with mobile environment Rust 异步机制 Asynchronous Rust 异步并发框架是许多大型应用、系统具备的底层能力。 异步并发框架是许多大型应用、系统具备的底层能力。 区别于多线程编程模型,它带来以下优势: 任务调度颗粒度更小,充分利用线程资源 更可控的线程数 单个任务资源占用:几十 KB -> 几百 Byte 任务切换时间 : 10 微秒 -> 100 纳秒 Rust 语言并没有提供异步并发框架, 只提供异步所需的基本特性: Future async / await Waker asyn c0 码力 | 25 页 | 1.64 MB | 1 年前3
Vue声明式编程Vue声明式编程 摘要 • 声明式与图灵完备性 • 声明式与UI编程的演进 • 声明式与UI架构 • 声明式与交互 声明式与图灵完备性 声明式 • 我们对语⾔言有很多划分的维度 • 声明式 vs 命令式 • 声明式语⾔言:HTML XML CSS SQL • 命令式语⾔言:C++ Java JavaScript 图灵完备性 • 图灵完备:“可计算性” • 命令式的图灵完备性:if/for, 声明式的图灵完备性:if/递归 Vue的Template的图灵完备性 • 实际上Vue的组件系统具有图灵完备性 • 使⽤用Vue计算阶乘 • 使⽤用Vue计算斐波那契数列列 声明式与UI编程 UI编程 • 70年年代 MVC诞⽣生 ⼈人们意识到视图应该被独⽴立抽象 • 80年年代 标记语⾔言⼤大热 最初更更与⽂文本相关 • 90年年代 可视化编辑器器出现 “独⽴立的UI代码⽂文件” Recycle Pool Visible Area 声明式与UI架构 MVVM • MVC => MVP => MVVM ⼀一脉相承的演化 • MVVM是为声明式/多语⾔言量量身定做的编程模型 MVVM的数据绑定 • 数据绑定是声明式的数据与UI通讯 • ⼀一些逻辑中数据绑定不不需要命令式代码 声明式数据交换 交互的抽象 ⼿手势 时间 陀螺仪 …… 位置 透明度0 码力 | 19 页 | 155.76 KB | 1 年前3
[试读] Angular 5 高级编程Web 开发经典丛书 Angular 5 高级编程 (第 2 版) [美] Adam Freeman 著 杨明军 颜炯 等译 北 京 Pro Angular, Second Edition Adam Freeman EISBN:978-1-4842-2306-2 本书封面贴有清华大学出版社防伪标签,无标签者不得销售。 版权所有,侵权必究。侵权举报电话:010-62782989 13701121933 图书在版编目(CIP)数据 Angular 5高级编程:第2版 / (美)亚当 • 弗里曼(Adam Freeman) 著;杨明军 等译. —北京:清华大学出 版社,2018 (Web 开发经典丛书) 书名原文:Pro Angular, Second Angular 5 是构建动态 JavaScript 应用程序的领先框架,而想讲清楚这个包罗万象的一 站式框架的各项强大功能是一项很大的挑战。Adam Freeman 撰著的《Angular 5 高级编程(第 2 版)》详细描述如何在项目中使用 Angular,从最基本的构造块开始,到最终构建最先进 和复杂的功能,深入讲解开发者所需要掌握的所有知识。本书讲解 Angular 框架的面面俱 到,同时0 码力 | 42 页 | 6.14 MB | 1 年前3
[试读]Angular 应用安全编程中文书名:Angular 应用安全编程 Book Title: Securing Angular Applications Google Angular Team 编著 北京 • BEIJING 序 Angular 是一个开发平台。它能帮你更轻松的构建 Web 应用。Angular 集声明式模板、依赖注入、端到 端工具和一些最佳实践于一身,为你解决开发方面的各种挑战。Angular 为开发者提升构建0 码力 | 27 页 | 177.00 KB | 1 年前3
新语⾔,新思维 解读⼀个并发问题的多种实现 - 陶召胜新语⾔言,新思维 解读⼀一个并发问题的多种实现 陶召胜 next: 异步编程的问题 变量量读写冲突 异步任务1 异步任务2 共享变量量 读、写 读、写 IO阻塞 回调地狱 Future也有不不⾜足 • get 很容易易导致另⼀一个对象阻塞 • 不不⽀支持多值、⾼高级错误处理理 next: 多任务求解1-10,000,000的和 序号 语⾔言 关键点 1 JavaScript JavaScript 不不再有回调地狱,变异步为顺序化思维,程序更更加可读 2 Go ⾼高并发调度,通道让异步编程更更简单 3 Scala (1)简洁的异步编程 (2)AKKA:分布式计算框架 4 Java (1)fork/join (2)CompletableFuture (3)反应式编程(Reactive Programming ) next: JavaScript 关键点:不 例例⼦子JavaScript实现(Generator) 例例⼦子JavaScript实现(async/await) 多进程,利利⽤用多核 输出: next: Go 关键点:⾼高并发调度,通道让异步编程更更简单 2015年年 Go 1.5 2016年年 Go1.6、1.7 2017年年 Go1.8、 1.9 goroutine gorutine在逻辑处理理器器上执⾏行行0 码力 | 42 页 | 9.85 MB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第七课 命令式编程:命令,可变数据结构,循环现代编程思想 命令式编程 Hongbo Zhang 1 函数式编程 到此为⽌,我们介绍的可以归类于函数式编程的范畴 对每⼀个输⼊,有着固定的输出 对于标识符,我们可以直接⽤它所对应的值进⾏替代⸺引⽤透明性 开发实⽤的程序,我们需要⼀些计算之外的�副作⽤� 进⾏输⼊输出 修改内存中的数据等 这些副作⽤可能导致多次执⾏的结果不⼀致 2 引⽤透明性 我们可以定义如下数据绑定和函数 4. let t = acc1 + acc2 5. acc1 = acc2; acc2 = t 6. } 7. acc1 8. } 22 总结 本章节初步接触了命令式编程,包括 如何使⽤命令 如何使⽤变量 如何使⽤循环等 230 码力 | 23 页 | 780.46 KB | 1 年前3
共 847 条
- 1
- 2
- 3
- 4
- 5
- 6
- 85













