Мне нужно запустить сразу 2 сервера в Python с помощью модуля потоковой передачи, но для вызова функции run() первый сервер работает, а второй сервер не запускается до конца первого сервера.
Это исходный код:Как я могу запустить сразу 2 сервера в Python?
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()]
Когда я звоню класс сервера, он автоматически запускает бесконечное время цикла.
Итак, как я могу запустить сразу 2 сервера?
Большое спасибо за помощь Fragsworth, я просто испытал новую структуру и отлично работал. Классы MainServer и DownloadServer наследуют от threading.Thread и запускают бесконечный цикл внутри run(). Наконец, я называю серверы, как вы сказали.