Мне нужно запустить 2 сервера одновременно в Python с использованием модуля потоков, но для вызова функции run () первый сервер работает, но второй сервер не работает до конца первого сервера.
Это исходный код:
import os
import sys
import threading
n_server = 0
n_server_lock = threading.Lock()
class ServersThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.start()
self.join()
def run(self):
global n_server, n_server_lock
if n_server == 0:
n_server_lock.acquire()
n_server += 1
n_server_lock.release()
print(['MainServer'])
# This is the first server class
main_server = MainServer()
elif n_server == 1:
n_server_lock.acquire()
n_server += 1
n_server_lock.release()
print (['DownloadServer'])
# This is the second server class
download_server = DownloadServer()
if __name__ == "__main__":
servers = []
for i in range(2):
servers += [ServersThread()]
Когда я вызываю серверный класс, он автоматически запускает бесконечный цикл while.
Так как я могу запустить 2 сервера одновременно?
Большое спасибо за вашу помощь, Fragsworth, я просто тестирую новую структуру и работаю отлично. Классы MainServer и DownloadServer наследуются от потоков. Обработка и запуск бесконечного цикла внутри run (). Наконец я звоню на серверы, как вы сказали.