multiprocessor.py 709 B

1234567891011121314
  1. import tqdm
  2. from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
  3. def local_mt(datums: list, func: callable, desc: str = None, num_workers=16):
  4. with ThreadPoolExecutor(max_workers=num_workers) as executor:
  5. if desc is None:
  6. return list(executor.map(func, datums))
  7. return list(tqdm.tqdm(executor.map(func, datums), total=len(datums), desc=desc))
  8. def local_mp(datums: list, func: callable, desc: str = None, num_workers=16):
  9. with ProcessPoolExecutor(max_workers=num_workers) as executor:
  10. if desc is None:
  11. return list(executor.map(func, datums))
  12. return list(tqdm.tqdm(executor.map(func, datums), total=len(datums), desc=desc))