Я считаю, что решением для вашего мышления будет Pool () в многопроцессорной обработке в Python. Пожалуйста, прочтите документацию здесь, https://docs.python.org/3/library/multiprocessing.html, для получения подробной информации.
По сути, объект Pool предлагает удобный способ распараллеливания выполнения функции (в вашем случае мы скажем application) по нескольким входным значениям, распределяя входные данные по процессам (параллелизм данных).
Ниже приведен пример фрагмента, который можно использовать для создания N параллельных процессов, которые будут равномерно распределены по всем ядрам CPU.
import datetime
from multiprocessing import Pool
import time
def init_application(x):
time.sleep(2)
# Initiate your application here, which will be added to the pool for processing.
print(datetime.datetime.now())
return x*x
if __name__ == '__main__':
p = Pool() # Distributes to all available CPU cores
print(p.map(init_application, range(10)))
Надеюсь, это проясняет ваши сомнения. Кроме того, приведенный выше фрагмент является примером реализации Pool () в python. Пожалуйста, измените в соответствии с вашими требованиями.
Спасибо, AG