Зачем нам нужен sync_to_async в Django? [дубликат]Python

Программы на Python
Ответить
Anonymous
 Зачем нам нужен sync_to_async в Django? [дубликат]

Сообщение Anonymous »

В документе говорилось:

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

Но еще один вопрос: безопасно ли, когда две задачи asyncio обращаются к одному и тому же ожидаемому объекту? сказал, что asyncio в Python является потокобезопасным.
И, как я знаю, поскольку GIL все еще существует, доступ к одному объекту из нескольких потоков должен быть потокобезопасным.
Может кто-нибудь может дать минимальный пример того, почему мы должны использовать await sync_to_async(foo)() вместо непосредственно foo() в django или других асинхронных приложениях?
Этот вопрос (как sync_to_async преобразует функции синхронизации в асинхронные) не отвечает на мой вопрос, в этом примере использование sync_to_async не показывает никакой существенной разницы, порядок вызовов функций внутри Second_job тот же. И не имеют никакого отношения к предотвращению серьезного конфликта.
Я знаю, у кого работает sync_to_async, но зачем нам запускать функцию синхронизации в новом потоке в асинхронном контексте?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-django
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»