Локальные потоки в Python - негативы, в отношении масштабируемости?
Мне интересно, есть ли некоторые серьезные последствия, которые я мог бы создать для себя, используя локальные потоки. Я заметил, что в случае с Flask они используют локальные потоки и упоминают, что это может вызвать проблемы с серверами, которые не созданы с учетом потоков. Это устаревшая проблема? Я использую локальные потоки с Django для нескольких вещей, развертывая с NGINX перед UWSGI или Gunicorn, на Ubuntu 10.04 с Postgres (не то, чтобы ОС или БД, вероятно, имели значение, но только для ясности). Мне нужно беспокоиться?
1 ответ
Threadlocals не самый надежный и безопасный способ сделать что-то - посмотрите, например, эту заметку. [Хотя также см. Комментарий Гленна ниже]
Я полагаю, что если вы правильно написали код с идеей, что вы помещаете вещи в большой глобальный банк информации, принимаете негарантированную согласованность данных в этих многопоточных локальных системах и заботитесь о том, чтобы избежать условий гонки и т. Д., И т. Д., То вы вполне могли бы быть в порядке,
Но, даже с учетом этого, все еще есть "волшебство" многопоточных локальных переменных, так что документальное подтверждение того, что происходит, и всякий раз, когда используется поточный локальный переменный, может помочь вам / будущим разработчикам кодовой базы в дальнейшем.