Witam,
Jestem w trakcie pisania serwera współbieżnego w Javie.
- Na serwerze ma operować wiele wątków.
- Każdy wątek posiada pewną nieskończoną pętlę, w której komunikuje się z klientem. Jest pewien warunek stopu, wtedy pętla kończy się. Robię porządek zamykając strumienie, z których korzysta wątek, gniazda itp.
Moje pytanie jest następujące:
Czy wykonywanie join jest konieczne jeśli pętla run() została zakończona? Czy funkcja ta ma służyć jak chcę ubić wątek z zewnątrz, czy nie potrzebuje czegoś jak pthread_destroy()?
Jak posprzątać po wątku, gdy funkcja run() zostaje zakończona?
Nie podoba mi się następująca rzecz: mimo, że wątki się kończą to kolejne tworzone mają kolejne identyfikatory. Mimo, że Thread-1 już dawno zakończył pracę to następny ma identyfikator Thread-2 itp.
Czy jest to całkowicie normalne czy świadczy raczej o błędzie w moim kodzie.
Pozdrawiam,