七周七并发模型[试读]
1.1 并发还是并行?
并发编程的概念并不新,却直到最近才火起来。一些编程语言,如Erlang、Haskell、Go、Scala、Clojure,也因对并发编程提供了良好的支持,而受到广泛关注。 并发编程复兴的主要驱动力来自于所谓的“多核危机”。正如摩尔定律 所预言的那样,芯片性能仍在不断提高,CPU的速度会继续提升,但计算机的发展方向已然转向多核化 。 Herb Sutter曾经说过:“免费午餐的时代已然终结。” 为了让代码运行得更快,单纯依靠更快的硬件已无法满足要求,我们需要利用多核,也就是发掘并行执行的潜力。 1.1 并发还是并行? 本书的主题是“并发”,那么又为何涉及了“并行”呢?虽然两者有所关联又常... 查看全部[ 1.1 并发还是并行? ]
1.2 并行架构
人们通常认为并行等同于多核,但现代计算机在不同层次上都使用了并行技术。比如说,单核的运行速度现今仍能每年不断提升的原因是:单核包含的晶体管数量,如同摩尔定律预测的那样变得越来越多,而单核在位级和指令级两个层次上都能够并行地使用这些晶体管资源。 位级(bit-level)并行 为什么32位计算机的运行速度比8位计算机更快?因为并行。对于两个32位数的加法,8位计算机必须进行多次8位计算,而32位计算机可以一步完成,即并行地处理32位数的4字节。 计算机的发展经历了8位、16位、32位,现在正处于64位时代。然而由位升级带来的性能改善是存在瓶颈的,这也正是短期内我们无法步入128位时代的原因... 查看全部[ 1.2 并行架构 ]
1.3 并发:不只是多核
使用并发的目的,不仅仅是为了让程序并行运行从而发挥多核的优势。若正确使用并发,程序还将获得以下优点:及时响应、高效、容错、简单。 并发的世界,并发的软件 世界是并发的,为了与其有效地交互,软件也应是并发的。 手机可以同时播放音乐、上网浏览、响应触屏动作。我们在IDE中输入代码时,IDE正在后台悄悄检查代码语法。飞机上的系统也同时兼顾了好几件事情:监控传感器、在仪表盘上显示信息、执行指令、操纵飞行装置调整飞行姿态。 并发是系统及时响应的关键。比如,当文件下载可以在后台进行时,用户就不必一直盯着鼠标沙漏而烦心了。再比如,Web服务器可以并发地处理多个连接请求,一个慢请求不会影响服务器对其他... 查看全部[ 1.3 并发:不只是多核 ]
1.4 七个模型
本书精心挑选了七个模型来介绍并发与并行。 线程与锁:线程与锁模型有很多众所周知的不足,但仍是其他模型的技术基础,也是很多并发软件开发的首选。 函数式编程:函数式编程日渐重要的原因之一,是其对并发编程和并行编程提供了良好的支持。函数式编程消除了可变状态,所以从根本上是线程安全的,而且易于并行执行。 Clojure之道——分离标识与状态:编程语言Clojure是一种指令式编程和函数式编程的混搭方案,在两种编程方式上取得了微妙的平衡来发挥两者的优势。 actor:actor模型是一种适用性很广的并发编程模型,适用于共享内存模型和分布式内存模型,也适合解决地理分布型问题,能提供强大的容错性。 ... 查看全部[ 1.4 七个模型 ]
书名: 七周七并发模型
作者: Paul Butcher
出版社: 人民邮电出版社
原作名: Seven Concurrency Models in Seven Weeks: When Threads Unravel
译者: 黄炎
出版年: 2015-3
页数: 244
定价: 49.00元
装帧: 平装
ISBN: 9787115386069