Я пытаюсь порождать несколько процессов одновременно для реализации пользовательских функций кластера в python.Я построил пять функций, которые по сути реализуют поиск по сетке и занимают некоторое время для завершения.Я изучил многопроцессорность и немного адаптировал свой код, но у меня проблемы с двумя вещами.Во-первых, кажется, что процессы все еще происходят последовательно, хотя кажется, что я правильно настроил многопроцессорность.Два, я не могу найти лучший способ получить доступ к значениям, возвращаемым многопроцессорным классом Process. Кажется, что обновление словаря с помощью return является хорошим решением этой проблемы.Так что моя главная проблема в том,правильно ли я настроил многопроцессорность / многопоточность?как я могу проверить?
Приведенный ниже код является упрощенной версией моей текущей структуры
def Optimal_Search(brc = "brc", ms='ms', agg = 'agg', db = 'db', km = 'km'):
import time
start_time = time.time()
def f(name):
print ('hello', name)
return ('hello', name)
if __name__=='__main__':
brc_params = Process(target = f(name = brc))
brc_params.start()
ms_params = Process(target = f(name = ms))
ms_params.start()
agg_params = Process(target = f(name = agg))
agg_params.start()
db_params = Process(target = f(name = db))
db_params.start()
km_params = Process(target = f(name = km))
km_params.start()
print("--- %s seconds ---" % (time.time() - start_time))
print(brc_params, ms_params, agg_params, db_params, km_params)
return brc_params, ms_params, agg_params, db_params, km_params