我的多线程将整数列表分解为单个数字

时间:2019-05-24 19:33:07

标签: python dataframe threadpool python-multithreading

我有一个9位整数的列表,我试图通过一个函数来执行所有“良好”策略并将它们附加到另一个列表中。我是多线程的新手,使用它时,唯一整数的数量从410,136增至3,334,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)

0 个答案:

没有答案