Как я могу запустить 2 сервера одновременно в Python?

Мне нужно запустить 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 (). Наконец я звоню на серверы, как вы сказали.

Ответы на вопрос(1)

Ваш ответ на вопрос