From 25288406ec5065cf8c304d94a937dc34efbf30bc Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Mon, 9 Apr 2018 13:33:32 +0800 Subject: [PATCH] auto commit --- notes/Java 并发.md | 56 +++++++++++++++++- pics/15b45dc6-27aa-4519-9194-f4acfa2b077f.jpg | Bin 0 -> 45056 bytes 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 pics/15b45dc6-27aa-4519-9194-f4acfa2b077f.jpg diff --git a/notes/Java 并发.md b/notes/Java 并发.md index eaef96f8..437cb6c1 100644 --- a/notes/Java 并发.md +++ b/notes/Java 并发.md @@ -927,11 +927,61 @@ public class ProducerConsumer { produce..produce..consume..consume..produce..consume..produce..consume..produce..consume.. ``` - ## ForkJoin -// TODO +主要用于并行计算中,和 MapReduce 原理类似,都是把大的计算任务拆分成多个小任务并行计算。 +```java +public class ForkJoinExample extends RecursiveTask { + private final int threhold = 5; + private int first; + private int last; + + public ForkJoinExample(int first, int last) { + this.first = first; + this.last = last; + } + + @Override + protected Integer compute() { + int result = 0; + if (last - first <= threhold) { + // 任务足够小则直接计算 + for (int i = first; i <= last; i++) { + result += i; + } + } else { + // 拆分成小任务 + int middle = first + (last - first) / 2; + ForkJoinExample leftTask = new ForkJoinExample(first, middle); + ForkJoinExample rightTask = new ForkJoinExample(middle + 1, last); + leftTask.fork(); + rightTask.fork(); + result = leftTask.join() + rightTask.join(); + } + return result; + } +} +``` + +```java +public static void main(String[] args) throws ExecutionException, InterruptedException { + ForkJoinExample example = new ForkJoinExample(1, 10000); + ForkJoinPool forkJoinPool = new ForkJoinPool(); + Future result = forkJoinPool.submit(example); + System.out.println(result.get()); +} +``` + +ForkJoin 使用 ForkJoinPool 来启动,它是一个特殊的线程池,线程数量取决于 CPU 核数。 + +```java +public class ForkJoinPool extends AbstractExecutorService +``` + +ForkJoinPool 实现了工作窃取算法来提高 CPU 的利用率。每个线程都维护了一个双端队列,用来存储需要执行的任务。工作窃取算法允许空闲的线程从其它线程的双端队列中窃取一个任务来执行。窃取的任务必须是最晚的任务,避免和队列所属线程发生竞争。例如下图中,Thread2 从 Thread1 的队列中拿出最晚的 Task1 任务,Thread1 会拿出 Task2 来执行,这样就避免发生竞争。但是如果队列中只有一个任务时还是会发生竞争。 + +

# 九、线程不安全示例 @@ -1593,3 +1643,5 @@ public static String concatString(String s1, String s2, String s3) { - [6장 Thread Synchronization](https://www.slideshare.net/novathinker/6-thread-synchronization) - [How is Java's ThreadLocal implemented under the hood?](https://stackoverflow.com/questions/1202444/how-is-javas-threadlocal-implemented-under-the-hood/15653015) - [Concurrent](https://sites.google.com/site/webdevelopart/21-compile/06-java/javase/concurrent?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showPrintDialog=1) +- [JAVA FORK JOIN EXAMPLE](http://www.javacreed.com/java-fork-join-example/ "Java Fork Join Example") +- [聊聊并发(八)——Fork/Join 框架介绍](http://ifeve.com/talk-concurrency-forkjoin/) diff --git a/pics/15b45dc6-27aa-4519-9194-f4acfa2b077f.jpg b/pics/15b45dc6-27aa-4519-9194-f4acfa2b077f.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a61ab275ca5d72eb925de160a89b1ada86967f06 GIT binary patch literal 45056 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

KQD+yh{gTiQVKHt|kti8meDl3=@C+7@_T* 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 B;fMeL literal 0 HcmV?d00001