parallele-programmierung/u07-2
Luca Conte c7999a908d add assignment 2025-05-07 21:30:01 +02:00
..
README.md add assignment 2025-05-07 21:30:01 +02:00

README.md

Problem 7.2: Implementation of ExecutorCompletionService

a) Implement the following simplified version of class java.util.concurrent.ExecutorCompletionService:

public class SimpleExecutorCompletionService<ResultType> {
	public SimpleExecutorCompletionService(ExecutorService ex) {  }

	// Submit task to ex for execution:
	public Future<ResultType> submit(Callable<ResultType> task) {  }

	// Fetch result of some finished task if available (else null):
	public Future<ResultType> poll() {  }
}

Use class SimpleExecutorCompletionServiceTester oin the file server to test your class. If your implementation is correct, the numbers printed with "… received result" should appear in mostly1 ascending order. Method Future.isDone() could be helpful for your implementation.


  1. This order is not really guaranteed: While the "internal" length of each task would indeed produce this order, the total execution time of a task may be longer due to external delays by the thread pool (e.g. how long it takes to start a submitted task) and by other threads (e.g. preemption). ↩︎