Witam,
w ramach 'zabawy' robię sobie serwerek, który ma obsługiwać na bieżąco wiele klientów. Na razie nic specjalnego to nie robi. Chcę dobrze zrobić 'podstawę', aby potem móc coś z tego bardziej pożytecznego..
Zastanawia mnie aktualnie następująca rzecz - serwer przy nawiązywaniu nowego połączenia tworzy sobie nowy wątek (pewnie przy dużej liczbie klientów, lepiej wykorzystać podejście 'współbieżne' i eventloop, ale nie w tym rzecz..), dodaje sobie do na listę wątków i sobie te wątki obsługuje. Rzecz w tym, że owy wątek ma mniej więcej taką budowę:
class ClientSocket(threading.Thread):
..
def run(self):
..
while True: #istota tego wpisu/postu
..
data = self.client.recv(BUFFOR_SIZE)
..
sleep(0.5)
Czy w taki sposób załatwia się oczekiwanie na dane /(uśpienie wątku) ? Bo jakby nie patrzeć jest to ciągłe usypianie/wybudzanie wątku.. Nie ma czegoś takiego (eventu) jak wybudzanie wątku w momencie pojawienia się danych ? Jeśli tak, to jak to wygląda ? (jak poszukać informacji na ten temat)
pzdr,
Al