https://medium.com/@monocosmo77/understanding-how-parallel-processing-works-part2-computer-science-506efb334f1d