It depends on how you use subprocess :
subprocess.call("some-program")
will be blocked until some-program .
p = subprocess.Popen("some-program")
will run some-program in a separate process in parallel with the rest of your script.
Please note: the first is just a convenient shell equivalent to
subprocess.Popen("some-program").wait()
output = subprocess.check_output("some-program") basically matches
output, stderr = subprocess.Popen("some-program").communicate()
source share