Skocz do zawartości
  • 0

ScheduledExecutorService jak używać w pluginach.0


Pytanie

Witam, słyszałem że zamiast rejestrowania tasków poleceniami bukkita lepiej użyć ScheduledExecutorService rozumiem że aby odpalić zadanie na nowym wątku trzeba użyć 

Executors.newSingleThreadScheduledExecutor()

Ale przykładowo mam 4 tryby + proxy oraz mój procesor posiada 16 wątków i na jednym z serwerów odpalam taska który jest bardzo ciężki mianowicie aktualizacja danych graczy do bazy.

Executors.newScheduledThreadPool(6)

Czy to spowoduje jakieś obciążenia na innych trybach?

Odnośnik do komentarza
https://skript.pl/temat/54160-scheduledexecutorservice-jak-u%C5%BCywa%C4%87-w-pluginach0/
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

1. Nie powinno się używać ExecutorService'ów w pluginach do minecrafta. Po to Bukkit ma własny ExecutorService aby właśnie z niego korzystać (i m.in poprawnie finalizować taski etc. przy wyłączaniu pluginu)
2. Jeśli już już chcesz używać własnego ExecutorService'u to pamiętaj, aby przy wyłączaniu pluginu (tj. w onDisable) użyć metody shutdown na nim
3. Nie, nie spowoduje. ExecutorService (ani ogólnie wątki w javie) nie używają fizycznych wątków procesora tylko tzw. wątków systemowych. Nie wiem jakiego systemu używasz ale w przypadku windowsa możesz wejść w Menedżer zadań -> Wydajność -> CPU i na dole w informacjach będziesz miał coś takiego:
 image.png
To jest właśnie liczba tych wątków systemowych. To już system sam sobie pod spodem rozdziela to pomiędzy fizyczne wątki procesora

Odnośnik do komentarza
https://skript.pl/temat/54160-scheduledexecutorservice-jak-u%C5%BCywa%C4%87-w-pluginach0/#findComment-328982
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...