title: Python multiprocessing map and apply doesn't run in parallel?
body: <p>I am confused about the python multiprocessing module. Suppose we write the code like this:</p>
  
  <pre><code>pool = Pool()
  for i in len(tasks) :
      pool.apply(task_function, (tasks[i],))
  </code></pre>
  
  <p>Firstly i = 0, and the first subprocessor will created and execute the first task. Since we are using the apply instead of apply_async, the main processor is blocked, so there is no chance that i get increment, and execute the second task. So by doing this way, we are actually write a serial code, not run in multiprocessing? So the same is true when we use map instead of map_async? No wonder the result of these tasks comes in order. If this is the truth, we don't even bother to use multiprocessing's map and apply function. Correct me, if I am wrong</p>