Эффективный способ обеспечить правильную вставку в общий список в многопроцессорной программе - PullRequest
0 голосов
/ 08 октября 2019

У меня есть программа, которая считывает некоторые данные, а затем выполняет анализ данных в пуле процессов. Я использую Manager.list () и блокировку, чтобы отслеживать, есть ли данные в списке, а если нет, поместить их в список и загрузить на сервер. Прямо сейчас у меня есть следующий код:

index_list = populate_index_list()
#index is the data I have coming in, and index_list is a Manager.List() object shared by the processes
if index not in index_list: #Check to see if it needs to be uploaded
  with lock:
    index_list = populate_index_list() #Get an updated list now that you have the lock incase another process just after the first if check put the same index in, then re check if I need to upload
    if index not in index_list:
      upload()

Не уверен, что есть лучший способ этого списка. Дайте мне знать, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...