(Python3) Могу ли я порождать один / несколько дочерних процессов в потоке многопоточной программы? - PullRequest
1 голос
/ 15 апреля 2020

У меня есть вариант использования, когда программа порождает несколько потоков, а именно. один для сетевого взаимодействия, один для изменения пары JSON файлов, другой для запросов и записи в базу данных. Они создаются в нескольких потоках, потому что все они являются задачами, связанными с вводом / выводом.

Код для потока Network Comm, обработчик файла JSON и обработчик базы данных будут написаны мной. Обработка базы данных может быть значительно оптимизирована, если использовать несколько процессов, так как у меня многоядерный компьютер.

Я хочу понять с точки зрения Python, как будет работать несколько процессов внутри потока (если он работает)

1 Ответ

0 голосов
/ 16 апреля 2020

После еще нескольких поисков я нашел страницу, которая близко отвечает на мой собственный вопрос.

Как описано в этом посте , начинать процесс из потока - не очень хорошая идея. , Полученные мьютексы в потоке будут дублироваться без возможности освобождения в дочернем процессе. Также существует множество условий для гонки данных.

Однако мне нравится идея Соломона, опубликованная в комментариях (к моему вопросу), и я постараюсь опередить ее go Или, возможно, изменить моя архитектура.

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