Django / Python: Как вы начинаете новый процесс в Python? - PullRequest
4 голосов
/ 20 января 2010

После того, как клиент загрузит изображение, я хочу изменить размер изображения до 8 различных размеров, а затем отправить их до S3 и сохранить их в файловой системе. Очевидно, что это может занять много времени (секунд), и я хотел бы сделать это «многопоточным» способом (я цитирую это, потому что мне все равно, действительно ли он многопоточный или какой-то другой функционал). Насколько я понимаю, из-за GIL в Python вы не можете успешно использовать многопоточность для подобных вещей, потому что он использует тот же процесс и, следовательно, работает точно так же, как если бы вы делали это в обычном потоке кода (против многопоточности). Есть ли какой-то другой, лучший способ открыть новый процесс в Python для такого рода задач?

1 Ответ

2 голосов
/ 20 января 2010

Если вы хотите вызвать внешний процесс, используйте модуль subprocess.

Если, с другой стороны, вы хотите обойти GIL и прокрутить какое-нибудь задание Python, используйте модуль multiprocessing. Он предоставляет интерфейс, очень похожий на пакет threading, но использует подпроцессы, поэтому вы не связаны ограничениями GIL.

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