https://medium.com/@luisalexandre.rodrigues/c-parallel-programming-working-with-thread-part-iii-13a6220da657