Как gevent гарантирует, что одни и те же локальные переменные потока не будут совместно использоваться несколькими короутинами
У меня есть проект Python 2 django, который был начат с gunicorn, и я пишу много threading.currentThread().xxxxxx ='some value'
в коде.
Поскольку coroutine повторно использует один и тот же поток, мне интересно, как gevent гарантирует, что переменная currentThread, созданная в coroutine A (Thread 1), не повлияет на coroutine B (same Thread 1).
В конце концов, на коде написано:
import threading
threading.currentThread().xxxxx ='ABCD'
Вместо
import gevent
gevent.currentCoroutine().xxxxx ='ABCD' (simulate my guess)
спасибо за помощь
Насколько я знаю, это не так. Обычные корутины Gevent работают в одном потоке - если вы измените что-то в этом потоке в одной корутине, это будет изменено и в другой корутине
Если это вопрос о gunicorn, то это другой вопрос, и следующий ответ содержит много подробностей об этом - https://stackoverflow.com/a/41696500/7970018.