(Это было слишком долго, чтобы добавить комментарий к другим хорошим ответам.)
Проблемы параллелизма (читай: множественный доступ к общему состоянию) - это набор проблем с многопоточностью. (Проблемы параллелизма) могут легко существовать на уровне «выше потока», таком как уровень процесса / сервера (глобальная переменная в случае, который вы упомянули выше, является уникальным значением процесса, что, в свою очередь, может привести к противоречивому представлению / состоянию, если Есть несколько процессов).
Необходимо тщательно проанализировать требования к согласованности данных и затем внедрить программное обеспечение для выполнения этих требований. Я всегда ошибался на стороне сейфа и ухудшал только в тщательно проанализированных областях, где это приемлемо.
Однако обратите внимание, что CPython запускает только один контекст потока для выполнения кода Python (чтобы получить истинные параллельные потоки, вам нужно писать / использовать расширения C), поэтому, пока вы можете получить форму состояния гонки для ожидаемых данных, вы выиграли не получают (все) один и тот же тип сценариев частичной записи и такие, которые могут мешать программам на C / C ++. Но, еще раз. Ошибка на стороне последовательного представления.
Существует целый ряд различных существующих методов создания доступа к глобальному атомарному - через потоки или процессы. Используйте их.