You create a bunch of subprocesses that inherit the current hits value. Each subprocess receives its own copy of hits and modifies it, and then terminates by discarding the local-local copy of the hits process.
The intended use of multiprocessing.Pool.map() is to use its return value, which you ignore. Each process can return a copy of hits , and you will finally join these copies.
 source share