In the implementation, the distinction will come from the partitionning of the problem, the definitions of workers and forman, and the recombination of sub solutions.
In this project, you'll find implemenations including Thread, Runnable, Callable, Future and ExecutorService, being applyed to the same problem.
The project's workers (called counters) are PrimesCounterThread, PrimesCounterRunnable and PrimesCounterCallable. While PrimesCounterThread extends the Thread class, others implements Runnable and Callable interfaces, respectively. Each counter is intented to calculate the number of primes in the given part of a specific range.
ParalleCounter classes are formans of the Project. Each ParallelCounter uses a group of Counters to calculate the overall number, either using Java ExecutorService or more conventinal means to manage the muli-threading process.