From 0e7c78348b85522024ec860037874de6d9f6885a Mon Sep 17 00:00:00 2001 From: Rainco <1404529393@qq.com> Date: 2021年10月14日 10:29:05 +0800 Subject: [PATCH 1/3] fix synax problem --- docs/book/24-Concurrent-Programming.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/book/24-Concurrent-Programming.md b/docs/book/24-Concurrent-Programming.md index d129610e..d1738ebe 100644 --- a/docs/book/24-Concurrent-Programming.md +++ b/docs/book/24-Concurrent-Programming.md @@ -341,7 +341,7 @@ import onjava.Timer; public class Summing { static void timeTest(String id, long checkValue, LongSupplier operation){ System.out.print(id + ": "); - Timer timer = newTimer(); + Timer timer = new Timer(); long result = operation.getAsLong(); if(result == checkValue) System.out.println(timer.duration() + "ms"); @@ -1597,4 +1597,4 @@ main()包含一系列可由其int值引用的测试。cfi(1)演示了showr()正 [^5]:不,永远不会有纯粹的功能性Java。我们所能期望的最好的是一种在JVM上运行的全新语言。 - \ No newline at end of file + From 6b1b1db889a678a10b22a9b31d49f5b0090b96d2 Mon Sep 17 00:00:00 2001 From: Rainco <1404529393@qq.com> Date: 2021年10月14日 10:59:35 +0800 Subject: [PATCH 2/3] fix synax problem --- docs/book/24-Concurrent-Programming.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/book/24-Concurrent-Programming.md b/docs/book/24-Concurrent-Programming.md index d1738ebe..602668aa 100644 --- a/docs/book/24-Concurrent-Programming.md +++ b/docs/book/24-Concurrent-Programming.md @@ -406,17 +406,17 @@ public class Summing2 { public static final long CHECK = (long)SZ * ((long)SZ + 1)/2; public static void main(String[] args) { System.out.println(CHECK); - long[] la = newlong[SZ+1]; + long[] la = new long[SZ+1]; Arrays.parallelSetAll(la, i -> i); Summing.timeTest("Array Stream Sum", CHECK, () -> - Arrays.stream(la).sum()); + Arrays.stream(la).sum()); Summing.timeTest("Parallel", CHECK, () -> - Arrays.stream(la).parallel().sum()); + Arrays.stream(la).parallel().sum()); Summing.timeTest("Basic Sum", CHECK, () -> - basicSum(la));// Destructive summation: + basicSum(la));// Destructive summation: Summing.timeTest("parallelPrefix", CHECK, () -> { - Arrays.parallelPrefix(la, Long::sum) - return la[la.length - 1]; + Arrays.parallelPrefix(la, Long::sum); + return la[la.length - 1]; }); } } From 7b0a72a77c343ea436acb4b546c983198523f42e Mon Sep 17 00:00:00 2001 From: Rainco <1404529393@qq.com> Date: 2021年10月15日 09:44:18 +0800 Subject: [PATCH 3/3] fix syntax problem --- docs/book/Appendix-Low-Level-Concurrency.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/book/Appendix-Low-Level-Concurrency.md b/docs/book/Appendix-Low-Level-Concurrency.md index d85e110d..d4a1e0a9 100644 --- a/docs/book/Appendix-Low-Level-Concurrency.md +++ b/docs/book/Appendix-Low-Level-Concurrency.md @@ -637,7 +637,7 @@ No odd numbers discovered ### 可见性 -第二个问题属于 [Java 并发的四句格言](./24-Concurrent-Programming.md#四句格言)里第二句格言 "一切都重要" 的部分。你必须假设每个任务拥有自己的处理器,并且每个处理器都有自己的本地内存缓存。该缓存准许处理器允许的更快,因为处理器并不总是需要从比起使用缓存显著花费更多时间的主内存中获取数据。 +第二个问题属于 [Java 并发的四句格言](./24-Concurrent-Programming.md#四句格言)里第二句格言 "一切都重要" 的部分。你必须假设每个任务拥有自己的处理器,并且每个处理器都有自己的本地内存缓存。该缓存准许处理器运行的更快,因为处理器并不总是需要从比起使用缓存显著花费更多时间的主内存中获取数据。 出现这个问题是因为 Java 尝试尽可能地提高执行效率。缓存的主要目的是避免从主内存中读取数据。当并发时,有时不清楚 Java 什么时候应该将值从主内存刷新到本地缓存 — 而这个问题称为 *缓存一致性* ( *cache coherence* )。