184    ThreadedPrimeCalculator1.
Start();
 
  187    ThreadedPrimeCalculator2.
Start();
 
  190    ThreadedPrimeCalculator3.
Start();
 
  193    ThreadedPrimeCalculator4.
Start();
 
  196    ThreadedPrimeCalculator5.
Start();
 
  199    ThreadedPrimeCalculator1.
Join();
 
  200    ThreadedPrimeCalculator2.
Join();
 
  201    ThreadedPrimeCalculator3.
Join();
 
  202    ThreadedPrimeCalculator4.
Join();
 
  205    ThreadedPrimeCalculator5.
Join();
 
  208    std::cout << 
"Creating separate threads:" << std::endl;
 
  209    std::vector<int> vPrimes = ThreadedPrimeCalculator1.
GetPrimes();
 
  210    std::cout << 
"Calculator1 Primes Length: " << vPrimes.size() << std::endl;
 
  211    vPrimes = ThreadedPrimeCalculator2.
GetPrimes();
 
  212    std::cout << 
"Calculator2 Primes Length: " << vPrimes.size() << std::endl;
 
  213    vPrimes = ThreadedPrimeCalculator3.
GetPrimes();
 
  214    std::cout << 
"Calculator3 Primes Length: " << vPrimes.size() << std::endl;
 
  215    vPrimes = ThreadedPrimeCalculator4.
GetPrimes();
 
  216    std::cout << 
"Calculator4 Primes Length: " << vPrimes.size() << std::endl;
 
  217    std::cout << 
"\n\nThis thread was stopped prematurely before reaching 9999999." << std::endl;
 
  218    vPrimes = ThreadedPrimeCalculator5.
GetPrimes();
 
  219    std::cout << 
"Calculator5 Primes Length: " << vPrimes.size() << std::endl;
 
  225    ThreadedPrimeCalculator5.
Start();
 
  227    std::cout << 
"Calculator5 was restarted and then main program exited without joining. (graceful shutdown demo)" << std::endl;
 
  228    vPrimes = ThreadedPrimeCalculator5.
GetPrimes();
 
  229    std::cout << 
"Calculator5 Primes Length: " << vPrimes.size() << std::endl;