校订 并发编程-前言部分 issue #413

This commit is contained in:
LingCoder
2020-05-29 06:17:26 +08:00
parent 8f103177d1
commit 5457b3d6d8

View File

@@ -5,26 +5,26 @@
>爱丽丝:“我可不想到疯子中间去”
>
>猫咪:“啊,那就无办法了,我们这都是疯子。我疯了,你也疯了”
>猫咪:“啊,那没辙了,我们这都是疯子。我疯了,你也疯了”
>
>爱丽丝:“你怎么知道我疯了”。
>
>猫咪:“你一定是疯了,否则你就不会来这儿” ——爱丽丝梦游仙境 第6章。
在本章之前我们惯用一种简单顺序地叙事方式来编程有点类似文学中的意识流第一件事发生了然后是第二件第三件……总之我们完全掌握着事情发生的进展和顺序。如果将值设置为5结果再看时它已变成47的话就很匪夷所思了。
在本章之前我们惯用一种简单顺序地叙事方式来编程有点类似文学中的意识流第一件事发生了然后是第二件第三件……总之我们完全掌握着事情发生的进展和顺序。如果将值设置为5再看时它已变成47的话结果就很匪夷所思了。
现在,我们来到了陌生的并发世界。对于这样的结果一点都不奇怪你原来信赖的一切都不再可靠。它可能有效,也可能无效。更可能得是,它在某些情况下会起作用,而在另一些情况下则不会。只有了解了这些情况,我们才能正确地行事。
现在,我们来到了陌生的并发世界。这样的结果一点都不奇怪,因为你原来信赖的一切都不再可靠。它可能有效,也可能无效。更可能得是,它在某些情况下会起作用,而在另一些情况下则不会。只有了解了这些情况,我们才能正确地行事。
作为类比,我们正常生活是发生在经典牛顿力学中的。物体具有质量:会落并转移动量。电线有电阻,光直线传播。假如我们进入极小、极热、极冷、或是极大的世界(我们不能生存),这些事情会发生变化。我们无法判断某物体是粒子还是波,光是否受到重力影响,一些物质会变为超导体。
作为类比,我们正常生活是发生在经典牛顿力学中的。物体具有质量:会落并转移动量。电线有电阻,光直线传播。假如我们进入极小、极热、极冷、或是极大的世界(我们不能生存),这些现象就会发生变化。我们无法判断某物体是粒子还是波,光是否受到重力影响,一些物质会变为超导体。
假设我们处在条故事线并行的间谍小说里,非单一意识流地叙事第一个间谍在某个特别的岩石底下了微缩胶片。当第二个间谍来取回包裹时,胶片可能已被第三个间谍带走了。小说并没有交代此处的细节。所以直到故事结尾,我们都没搞清楚到底发生了什么。
假设我们处在条故事线并行的间谍小说里,非单一意识流地叙事第一个间谍在岩石底下了微缩胶片。当第二个间谍来取时,胶片可能已被第三个间谍拿走。小说并没有交代此处的细节。所以直到故事结尾,我们都没搞清楚到底发生了什么。
构建并发应用好比[搭积木](https://en.wikipedia.org/wiki/Jenga)。每拉出一块放在塔顶时,整个都可能会崩塌。每个积木塔和应用程序都是独一无二的,有着自己的作用。你在某个系统构建中学到的东西并不一定适用于下一个系统。
构建并发程序好比[搭积木](https://en.wikipedia.org/wiki/Jenga)游戏。每拉出一块放在塔顶时都有崩塌的可能。每个积木塔和应用程序都是独一无二的,有着自己的作用。你在某个系统构建中学到的知识并不一定适用于下一个系统。
本章是对并发基本介绍。虽然我们用到了现代的 Java 8 工具来演示原理,但本章还远未全面论述并发。我的目标是为你提供足够的基础知识,你能够把握问题的复杂性和危险性,从而安全地渡过这片鲨鱼肆虐的困难水域。
本章是对并发概念最基本介绍。虽然我们用到了现代的 Java 8 工具来演示原理,但还远未全面论述并发。我的目标是为你提供足够的基础知识,使你能够把握问题的复杂性和危险性,从而安全地渡过这片鲨鱼肆虐的困难水域。
更多麻烦和底层的细节,请参阅附录:[并发底层原理](./Appendix-Low-Level-Concurrency.md)。要进一步深入这个领域,你还必须阅读 *Brian Goetz* 等人的 《Java Concurrency in Practice》。在撰写本文时该书已有十多年的历史了但它仍包含我们必须了解和明白的知识要点。理想情况下本章和上述附录是阅读该书的良好前提。另外*Bill Venner* 的 《Inside the Java Virtual Machine》也很值得一看。它详细描述了 JVM 的内部工作方式,包括线程。
更多繁琐和底层的细节,请参阅附录:[并发底层原理](./Appendix-Low-Level-Concurrency.md)。要进一步深入这个领域,你还必须阅读 *Brian Goetz* 等人的 《Java Concurrency in Practice》。在撰写本文时该书已有十多年的历史了但它仍包含我们必须了解和明白的知识要点。理想情况下本章和上述附录是阅读该书的良好前提。另外*Bill Venner* 的 《Inside the Java Virtual Machine》也很值得一看。它详细描述了 JVM 的内部工作方式,包括线程。
<!-- The Terminology Problem -->