From 18618dfbecab447b9e94bfdb931bdd117536f8fb Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Thu, 23 Jul 2015 00:49:04 +0300 Subject: [PATCH] #68 Added class diagram and referenced it from the README.md --- README.md | 2 + .../etc/async-method-invocation.png | Bin 0 -> 36923 bytes .../etc/async-method-invocation.ucls | 85 ++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 async-method-invocation/etc/async-method-invocation.png create mode 100644 async-method-invocation/etc/async-method-invocation.ucls diff --git a/README.md b/README.md index 62bc68242..753b500bb 100644 --- a/README.md +++ b/README.md @@ -627,6 +627,8 @@ validation and for building to order ## Async Method Invocation [↑](#list-of-design-patterns) **Intent:** Asynchronous method invocation is pattern where the calling thread is not blocked while waiting results of tasks. The pattern provides parallel processing of multiple independent tasks and retrieving the results via callbacks or waiting until everything is done. +![alt text](https://github.com/iluwatar/java-design-patterns/blob/master/async-method-invocation/etc/async-method-invocation.png "Async Method Invocation") + **Applicability:** Use async method invocation pattern when * You have multiple independent tasks that can run in parallel * You need to improve performance of running a group of sequential tasks diff --git a/async-method-invocation/etc/async-method-invocation.png b/async-method-invocation/etc/async-method-invocation.png new file mode 100644 index 0000000000000000000000000000000000000000..764895d7a217b838e4c884ced9df9d0d4888d28f GIT binary patch literal 36923 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file