Python 数据帧在ThreadPoolExecutor中被丢弃,引发多个随机错误

Python 数据帧在ThreadPoolExecutor中被丢弃,引发多个随机错误,python,threadpoolexecutor,concurrent.futures,Python,Threadpoolexecutor,Concurrent.futures,我正在使用ThreadPoolExecutor运行一个带有多线程的flask应用程序。在这个算法中,我导入了18个不同的类,它们对应于不同的用例。来自用户的输入(通常为20-30行)需要通过这些类的方法进行处理。下面是路由的一个示例片段 def run_methods(use_case_class): output_df, output_dict = use_case_class.method_computation() return output_df, output_dict

我正在使用ThreadPoolExecutor运行一个带有多线程的flask应用程序。在这个算法中,我导入了18个不同的类,它们对应于不同的用例。来自用户的输入(通常为20-30行)需要通过这些类的方法进行处理。下面是路由的一个示例片段

def run_methods(use_case_class):
    output_df, output_dict = use_case_class.method_computation()
    return output_df, output_dict

@app.route('/post_request', methods=['POST'])
def func():
    use_case1 = Class1(arg1,arg2)
    use_case2 = Class2(arg1,arg2)
    use_cases_list = [use_case1,use_case2]

    with ThreadPoolExecutor(max_workers=10) as executor:
        final_output = executor.map(run_methods, use_cases_list)
在这里,我有一个对象和多个方法,理想情况下,这是一个多处理的情况,但是由于这些过程需要相当长的时间来衍生,我不能使用它。我的目标是在700毫秒内完成所有计算。因此,我尝试使用多线程。现在,类的内部结构非常相似,这意味着工作流、方法名称和使用的对象。所以发生的事情是随机的,我得到了多个错误。看起来,多线程正在断断续续地中断对象

错误可追溯到以下操作:

例:1

例:2

例:3

错误:

对于Ex 1和2-断言错误-blk ref_LOC中的间隙 对于Ex 3-TypeError:串联需要只包含字符串(或缺少值)的列表。在浮动列中发现有问题的值

我尝试在其中一个类中更改变量名,但没有用

有人能帮忙吗?在这个问题上我完全陷入了困境

提前谢谢

df.loc[:, ['var1','var2','var3','var4']].fillna(0, inplace=True)
varlist = [item for sublist in list(self.dict_input.values()) for item in sublist]
for var1 in varlist:
   df1[var1] = df1[var1].astype(str)
df['col1'] = df[self.vars_list[0]].str.cat(df[[var for var in varlist1 if self.vars_list[0] not in var]],sep='-')