Python'da iş parçacığı modülünü kullanarak bir kerede 2 sunucu çalıştırmam gerekiyor, ancak işlev çalıştırmasını çağırmak için(), ilk sunucu çalışıyor, ancak ikinci sunucu ilk sunucunun sonuna kadar çalışmıyor. Python'da 2 sunucuyu aynı anda nasıl çalıştırabilirim?
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()]
Sunucu sınıf aramak
, otomatik döngü sırasında sonsuz çalıştırır:Bu kaynak kodudur.
Peki, aynı anda 2 sunucuyu nasıl çalıştırabilirim?
Yardımlarınız için çok teşekkür ederim Fragsworth, Yeni yapıyı test ediyorum ve mükemmel çalışıyor. MainServer ve DownloadServer sınıfları, threading'den devralınacak. Çalıştırın ve run() içindeki sonsuz döngüyü çalıştırın. Sonunda söylediğin gibi sunucuları aradım.