我目前有一个for循环,它在每次迭代中创建一个pandas数据框架,并启动一个函数,该数据框架是函数的参数:
for ii in hold_:
temp_df = runners_df[runners_df['market_id'] == ii]
from odds import odds
odds(temp_df )
是否有一种方法可以独立但并发地运行循环中调用的函数的所有版本。我想在函数中添加一个可变的时间延迟,这样循环中的函数的某些版本可能不会完成5个小时,而有些版本几乎会立即完成。我可以使用线程吗?
谢谢!
线程将是第一个尝试。下面的代码应该大致适用于您的情况。它为每个任务创建一个线程。根据您的odds
所做的工作,您的代码可以通过多处理进一步增强,但代价是增加复杂性。
from odds import odds
from threading import Thread
threads: list[Thread] = []
for ii in hold_:
temp_df = runners_df[runners_df['market_id'] == ii]
th = Thread(target=odds, args= (temp_df,), name=f"Thread #{ii}")
threads.append(th)
th.start()
for th in threads:
th.join()