title: MultiProcessing Thread Pool Returns Null Result
body: <p>The tup list is a subset of huge dataset. I have been trying to use multithreading to reduce the computing time. But the dfsi list gives null result?</p>
  
  <pre><code>dfsi = list[]
  
  tup = [(28075,69),(28075,72),(28075,73),(28075,76),(28075,96),(28075,99), 
  (28075,102),(28075,103),(28075,162),(28075,165)]
  
  from multiprocessing.pool import ThreadPool 
  
  def multi_processing_tuples(sku,ids):
      Q0 = np.percentile(df[((df['sku'] == sku) &amp; (df['ids'] == ids)), 0)
      Q4 = np.percentile(df[((df['sku'] == sku) &amp; (df['ids'] == ids))], 100)
      dfsi.append((sku,ids,Q0,Q4))
  
  pool_size = 5
  pool = ThreadPool(pool_size)
  
  for (sku,ids) in tup:
      pool.apply_async(multi_processing_tuples, ((sku,ids),))
  
  pool.close()
  pool.join()
  </code></pre>
  
  <p>EDIT: </p>
  
  <pre><code>dfsi = list[]
  
  tup = [(28075,69),(28075,72),(28075,73),(28075,76),(28075,96),(28075,99), 
  (28075,102),(28075,103),(28075,162),(28075,165)]
  
  from multiprocessing.pool import ThreadPool 
  
  def multi_processing_tuples(sku,ids):
      Q0 = np.percentile(df[((df['sku'] == sku) &amp; (df['ids'] == ids)), 0)
      Q4 = np.percentile(df[((df['sku'] == sku) &amp; (df['ids'] == ids))], 100)
      return(sku,ids,Q0,Q4)
  
  pool_size = 5
  pool = ThreadPool(pool_size)
  
  for (sku,ids) in tup:
      dfsi.append(pool.apply_async(multi_processing_tuples, ((sku,ids),)))
  
  pool.close()
  pool.join()
  </code></pre>
  
  <p>i am getting dfsi output as.  </p>
  
  <pre><code>[&lt;multiprocessing.pool.ApplyResult at 0x1f707d7d9b0&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d7d748&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d7d710&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d7dda0&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d8e0f0&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d8e358&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d8e320&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d8e6a0&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d936d8&gt;,
  &lt;multiprocessing.pool.ApplyResult at 0x1f707d93eb8&gt;]
  </code></pre>
  
  <p>how can I see the real output?</p>