https://medium.com/@luisalexandre.rodrigues/c-parallel-programming-working-with-concurrent-collections-part-ii-88b0f7a67365