#107 JavaDoc improvements for Async Method Invocation example
This commit is contained in:
		| @@ -3,29 +3,24 @@ package com.iluwatar.async.method.invocation; | |||||||
| import java.util.concurrent.Callable; | import java.util.concurrent.Callable; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * <p> |  | ||||||
|  * This application demonstrates the async method invocation pattern. Key parts of the pattern are |  * This application demonstrates the async method invocation pattern. Key parts of the pattern are | ||||||
|  * <code>AsyncResult</code> which is an intermediate container for an asynchronously evaluated value, |  * <code>AsyncResult</code> which is an intermediate container for an asynchronously evaluated value, | ||||||
|  * <code>AsyncCallback</code> which can be provided to be executed on task completion and |  * <code>AsyncCallback</code> which can be provided to be executed on task completion and | ||||||
|  * <code>AsyncExecutor</code> that manages the execution of the async tasks. |  * <code>AsyncExecutor</code> that manages the execution of the async tasks. | ||||||
|  * </p> |  | ||||||
|  * <p> |  * <p> | ||||||
|  * The main method shows example flow of async invocations. The main thread starts multiple tasks with |  * The main method shows example flow of async invocations. The main thread starts multiple tasks with | ||||||
|  * variable durations and then continues its own work. When the main thread has done it's job it collects |  * variable durations and then continues its own work. When the main thread has done it's job it collects | ||||||
|  * the results of the async tasks. Two of the tasks are handled with callbacks, meaning the callbacks are |  * the results of the async tasks. Two of the tasks are handled with callbacks, meaning the callbacks are | ||||||
|  * executed immediately when the tasks complete. |  * executed immediately when the tasks complete. | ||||||
|  * </p> |  | ||||||
|  * <p> |  * <p> | ||||||
|  * Noteworthy difference of thread usage between the async results and callbacks is that the async results |  * Noteworthy difference of thread usage between the async results and callbacks is that the async results | ||||||
|  * are collected in the main thread but the callbacks are executed within the worker threads. This should be |  * are collected in the main thread but the callbacks are executed within the worker threads. This should be | ||||||
|  * noted when working with thread pools. |  * noted when working with thread pools. | ||||||
|  * </p> |  | ||||||
|  * <p> |  * <p> | ||||||
|  * Java provides its own implementations of async method invocation pattern. FutureTask, CompletableFuture |  * Java provides its own implementations of async method invocation pattern. FutureTask, CompletableFuture | ||||||
|  * and ExecutorService are the real world implementations of this pattern. But due to the nature of parallel |  * and ExecutorService are the real world implementations of this pattern. But due to the nature of parallel | ||||||
|  * programming, the implementations are not trivial. This example does not take all possible scenarios into |  * programming, the implementations are not trivial. This example does not take all possible scenarios into | ||||||
|  * account but rather provides a simple version that helps to understand the pattern. |  * account but rather provides a simple version that helps to understand the pattern. | ||||||
|  * </p> |  | ||||||
|  * |  * | ||||||
|  * @see AsyncResult |  * @see AsyncResult | ||||||
|  * @see AsyncCallback |  * @see AsyncCallback | ||||||
|   | |||||||
| @@ -2,6 +2,13 @@ package com.iluwatar.async.method.invocation; | |||||||
|  |  | ||||||
| import java.util.Optional; | import java.util.Optional; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  *  | ||||||
|  |  * AsyncCallback interface | ||||||
|  |  * | ||||||
|  |  * @param <T> | ||||||
|  |  *  | ||||||
|  |  */ | ||||||
| public interface AsyncCallback<T> { | public interface AsyncCallback<T> { | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
|   | |||||||
| @@ -3,6 +3,11 @@ package com.iluwatar.async.method.invocation; | |||||||
| import java.util.concurrent.Callable; | import java.util.concurrent.Callable; | ||||||
| import java.util.concurrent.ExecutionException; | import java.util.concurrent.ExecutionException; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  *  | ||||||
|  |  * AsyncExecutor interface | ||||||
|  |  * | ||||||
|  |  */ | ||||||
| public interface AsyncExecutor { | public interface AsyncExecutor { | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
|   | |||||||
| @@ -2,6 +2,12 @@ package com.iluwatar.async.method.invocation; | |||||||
|  |  | ||||||
| import java.util.concurrent.ExecutionException; | import java.util.concurrent.ExecutionException; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  *  | ||||||
|  |  * AsyncResult interface | ||||||
|  |  * | ||||||
|  |  * @param <T> | ||||||
|  |  */ | ||||||
| public interface AsyncResult<T> { | public interface AsyncResult<T> { | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
|   | |||||||
| @@ -6,7 +6,9 @@ import java.util.concurrent.ExecutionException; | |||||||
| import java.util.concurrent.atomic.AtomicInteger; | import java.util.concurrent.atomic.AtomicInteger; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  |  *  | ||||||
|  * Implementation of async executor that creates a new thread for every task. |  * Implementation of async executor that creates a new thread for every task. | ||||||
|  |  *  | ||||||
|  */ |  */ | ||||||
| public class ThreadAsyncExecutor implements AsyncExecutor { | public class ThreadAsyncExecutor implements AsyncExecutor { | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user