Многопоточность не находит первую целевую функцию python - PullRequest
0 голосов
/ 21 февраля 2019

Итак, у меня есть особая ситуация, когда я многопоточен с набором функций, некоторые из которых вызывают дальнейшие потоки.В одном из таких случаев первый поток в блоке из трех не выполняет свою целевую функцию и вместо этого выдает следующую ошибку:

NameError: name '<FUNCTION_NAME>' is not defined

Это код:

threadA = self.pool.apply_async(functionA)
threadB = self.pool.apply_async(functionB)
threadC = self.pool.apply_async(functionC)

valueA = threadA.get()
valueB = threadB.get()
valueC = threadC.get()

Исоответствующая функция определена выше.

Если я переключу порядок этих назначений потоков, первый вызовет NameError.Например.Если threadB был назначен первым, ошибка будет выглядеть следующим образом:

NameError: name 'functionB' is not defined

В это время происходит множество других потоков, поэтому я не уверен, что это проблема с ресурсами.

Редактировать: Я использую multiprocessing.pool.ThreadPool, а не процессы.

Любая помощь будет отличной,

Приветствия :)

...