code_len = len(codes) cpus = os.cpu_count() per_thread_cnt = int(code_len / cpus) code_len = len(codes) cpus = os.cpu_count() if cpus isNone: cpus = 8 futures = [] with concurrent.futures.ProcessPoolExecutor(max_workers=cpus) as executor: for i inrange(0, cpus): stop = per_thread_cnt * (i + 1) if i == cpus - 1: stop = code_len code_list = codes[per_thread_cnt * i:stop] futures.append(executor.submit(screen_stock_work,json_param, code_list))
for future in concurrent.futures.as_completed(futures): try: data = future.result() for it in data: nngPair.send(bytes(json.dumps({'CmdType': CMD_SCREEN_LIST_RESULT, 'Param': it}), encoding='utf-16')[2:]) except Exception as exc: print('generated an exception: %s' % ( exc))