Java thread

0

Witajcie.

Mam do wykonania program który skanuje pliki w tle dajmy na przykładzie torrenta.

Mam 2 użytkowników którzy dodają sobie torrenty do TorrentManager. TorrentManager przyjmuje 2 argumenty - file oraz userid. I teraz jak rozwiązać problem z:

-Ściąganiem torrentów: Torrent manager ma utworzyć nową instancję klasy TorrentService (jako argument przyjmuje plik torrent) i uruchomić go w nowym wątku ? Czy istnieje jakieś ładniejsze rozwiązanie.

-Udostępnieniem informacji na temat ściągania? : Dodaje monitor jako listnera i najlepiej wysyłać te dane do bazy danych (np HSQLDB) i udostępnić te dane użytkownikowi?

docelowo program będzie działał na podobnej zasadzie.

Dziekuje za odpowiedzi.

1

Poczytaj sobie o Java Concurrency API - dokładniej o puli wątków. Nie będziesz musiał "ręcznie" tworzyć tych wątków wtedy.

0
[losowa nazwa] napisał(a)

Poczytaj sobie o Java Concurrency API - dokładniej o puli wątków. Nie będziesz musiał "ręcznie" tworzyć tych wątków wtedy.

Dzięki za odpowiedź.

Nie sądzisz że dla np gdy wejdzie 400 użytkowników którzy dodadzą np te torrenty to wątki nie zapchają serwera ?

0

No właśnie tak będzie. Dlatego poczytaj o puli wątków - tam kolejkujesz zadnia (automatycznie) i określasz maksymalną liczbę wątków (np. 10), które mogą się jednocześnie wykonywać.

0
[losowa nazwa] napisał(a)

No właśnie tak będzie. Dlatego poczytaj o puli wątków - tam kolejkujesz zadnia (automatycznie) i określasz maksymalną liczbę wątków (np. 10), które mogą się jednocześnie wykonywać.

Dobra czaje już temat ;)

Dzięki Ci wielkie - browara wiszę ;]

A jeszcze ostatnie pytanie. Istnieje jakieś ładniejsze rozwiązanie które pozwala na np ściąganie bardzo dużej ilości torrentów w tle ? Czy jedynie zostają wątki i kolejkowanie ich ?

0

Myślę, że możesz poszukać dedykowanej biblioteki do tego ;) Ona to za Ciebie załatwi ;p To jest najładniejsze rozwiązanie ;) A pamiętaj, że tworzeniem wątków i kolejkowaniem ich nie zajmujesz się Ty, tylko API Javy - o ile użyjesz odpowiednich klas. Ty tylko piszesz, co taki wątek ma wykonywać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0