Typically, you'd run multiple THREADS, not multiple PROCESSES. There are many advantages to running threads rather than processes. The main advantage is that all the memory belonging to the process is shared between threads, where you'd have to set up some sort memory sharing protocol to share (some part of) the data between different processes.
Both Python and C++ support mulithreading, but as mentioned elsewhere, the python code can't run on multiple processors. It is however useful for doing things in "semi-parallel" (I used python threads to read a file and play it on the soundcard, and at the same time record and save another file, whilst at the same time issuing other commands on the serial port to control the equipment "under test").
The Python module multiprocessing
is indeed for using multiple separate processes, which helps "break the python interpreter lock".
In general, running in separate processes is more useful if you want the code to be completely independent from the other tasks running in the system, and doesn't have to share [much] data between the processes - for example calculating very large prime numbers would be a good thing to do in an independent process [I mean the ones with a few hundred thousand or more digits] - the process runs on its own with no other input for hours and hours on end, and it only needs a small amount of input that doesn't change - the "prime number candidate".