Как насчет использования multiprocessing.Pool
?Он будет перебирать ваш ввод и с помощью partial
вы можете передать ему больше аргументов.как это:
import multiprocessing
from functools import partial
def job(a, b, c):
print("{} - {} - {}".format(a, b, c))
def main():
iterable = [1, 2, 3, 4, 5, 6]
pool = multiprocessing.Pool(processes=3)
func = partial(job, "static arg1", "static arg2")
pool.map(func, iterable)
pool.close()
pool.join()
if __name__ == "__main__":
main()
вывод будет:
static arg1 - static arg2 - 1
static arg1 - static arg2 - 2
static arg1 - static arg2 - 3
static arg1 - static arg2 - 4
static arg1 - static arg2 - 5
static arg1 - static arg2 - 6