В Python у вас есть несколько вариантов параллелизма / параллелизма. Существует модуль threading
, который позволяет выполнять код в нескольких логических потоках, и модуль multiprocessing
, который позволяет создавать несколько процессов. Существует также модуль concurrent.futures
, который предоставляет API для обоих этих механизмов.
Если ваш процесс связан с ЦП (т. Е. Вы используете 100% ЦП, доступного для Python повсюду - обратите внимание, что этоне 100% ЦП, если у вас многоядерный или гиперпоточный компьютер) вы вряд ли увидите много преимуществ от многопоточности, так как в действительности это не использует несколько потоков ЦП параллельно, а просто позволяет переходить от одного к другому, покаСначала ждет IO. Многопроцессорная обработка, вероятно, будет более полезной для вас, поскольку она позволяет вам работать с несколькими потоками ЦП. Вы можете запустить каждую из ваших функций в своем собственном процессе, используя класс Process:
import multiprocessing
#function defs here
p = multiprocessing.Process(target=LengthCount, args=(doc,))
p.start()
# repeat for other processes
Вам нужно настроить свой код, чтобы функции возвращались к общей переменной (или записывали прямо в вашу базу данных)чем напрямую вернуть свой результат, чтобы вы могли получить к ним доступ после завершения процесса.