from concurrent.futures import ThreadPoolExecutor, as_completed from tqdm import tqdm def mp_handler(job): vfile, args, gpu_id = job try: print(job) except KeyboardInterrupt: exit(0) except: traceback.print_exc() p = ThreadPoolExecutor(args.ngpu) futures = [p.submit(mp_handler, j) for j in range(3)] _ = [r.result() for r in tqdm(as_completed(futures), total=len(futures))]



