Como posso executar 2 servidores de uma só vez no Python?
Eu preciso executar dois servidores ao mesmo tempo em Python usando o módulo de segmentação, mas para chamar a função run (), o primeiro servidor está em execução, mas o segundo servidor não é executado até o final do primeiro servidor.
Este é o código fonte:
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()]
Quando eu chamo a classe do servidor, ele executa automaticamente um loop while infinito.
Então, como posso executar 2 servidores de uma só vez?
Muito obrigado por sua ajuda Fragsworth, eu apenas testo a nova estrutura e trabalho perfeito. As classes MainServer e DownloadServer, herdam de threading.Thread e executam o loop infinito dentro de run (). Finalmente eu chamo os servidores como você disse.