Хотя вы можете использовать потоки в витой, обычная идиома с витой - это выполнять RPC асинхронно, используя один поток. Это одно из его преимуществ. Twisted Framework запустит реактор и вызовет события вашего обработчика, когда результаты RPC будут готовы для вас. Затем ваш код запускается, и когда ваш обработчик выходит, управление возвращается к реактору, который вызовет следующий обработчик, у которого готов код. Таким образом, несмотря на то, что в paralell происходит много всего, twisted гарантирует, что одновременно выполняется только одна из ваших функций, поэтому вам не нужно никакого мьютекса, просто поддерживая переменные состояния, чтобы ваши обратные вызовы знали, какой у них текущий контекст достаточно работы.
Если вы явно создаете потоки и используете их с запущенной витой платформой, вам, вероятно, понадобится что-то вроде Стандартный Python Mutex , хотя вам нужно быть очень осторожным, чтобы никогда не иметь свой основной Reactor поток обратного вызова, ожидающий мьютекс в течение любого отрезка времени, поскольку обратные вызовы внутри реактора не должны блокироваться.