Counting the number of primes between 1 and a specified upper limit (10^8 or more) as an exercise in parallel programming using Java:
- Sequential solution using a loop
- Sequential solution using Java streams
- Parallel solution using Java streams
- Parallel solution using a fixed number of threads and AtomicLongs to coordinate them