Я реализовал серверную программу, используя Twisted
. Я использую twisted.protocols.basic.LineReceiver
вместе с twisted.internet.protocol.ServerFactory
.
Я хотел бы, чтобы каждый клиент, который подключается к серверу, выполнял набор функций параллельно (я думаю о многопоточности для этого).
У меня есть некоторая путаница с использованием twisted.internet.threads.deferToThread
для этой проблемы.
- Должен ли я позвонить
deferToThread
вServerFactory
для этой цели? - Являются ли скрученные потоки потокобезопасными в отношении условий гонки?
- Ранее я пытался использовать
multiprocessing
в своей серверной программе, но, похоже, он не работал в сочетании с Twisted Reaker, в то время какdeferToThread
выполнял свою работу.
Мне интересно, как реализованы Twisted threads? Разве они не используют multiprocessing
?