У меня есть список из 9-значных целых чисел, которые я пытаюсь запустить через функцию, чтобы взять все «хорошие» политики и добавить их в другой список. Я новичок в многопоточности, и когда я использую его, количество уникальных целых чисел возрастает с 410 136 до 3 344 192.
По какой-то причине, когда я отправляю его через пул многопоточности, он разбивает каждое 9-значное число на однозначное число.
Это функция:
record_id = df_tabular['policy'].unique().astype('str')
def build_safe_list(list_id):
for record_i in list_id:
try:
int_record = int(record_i)
safe_record_id_list.append(int_record)
#print(record_i)
except:
#print(record_i)
bad_record_id.append(record_i)
#build_safe_list(record_id)
Когда я запускаю это без build_safe_list(record_id)
, закомментировано, это нормально.
Однако, когда я запускаю нижеприведенное, все портится, как описано выше:
safe_record_id_list = []
bad_record_id = []
from multiprocessing.pool import ThreadPool
num_thread = 16
pool = ThreadPool(num_thread)
results = pool.imap_unordered(build_safe_list, record_id)