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;