W języku Java istnieje sposób ustalania priorytetu dla wątku, który będzie wywoływał metodę doInBackground()
obiektu obiektu SwingWorker
?Czy istnieje sposób ustawienia priorytetu wątku tła używanego przez SwingWorker?
W interfejsie API wątków dostępna jest metoda setPriority()
. Metoda SwingWorker.execute()
planuje swingworker do wykonania w wątku roboczym. Chciałbym mieć dostęp do tego wątku roboczego, aby ustawić jego priorytet.
Z mojego rozumienia ten wątek roboczy pochodzi z domyślnej puli wątków roboczych. Czy jedynym sposobem radzenia sobie z tym jest użycie mojego własnego executora?
ile używasz blisko 100% wszystkich swoich procesorów, ustawienie priorytetu może nie robi żadnej różnicy. Jeśli używasz całego procesora, priorytet jest tylko wskazówką, którą JVM lub system operacyjny może zignorować. IMHO To nie rozwiąże twojego problemu. –
Aplikacja jest specjalnie przeznaczona dla systemu Windows, a JVM jest standardową maszyną JVM Oracle. Z tego innego pytania dotyczącego przepełnienia stosu robi się pewną różnicę w tym scenariuszu: http://stackoverflow.com/questions/297804/thread-api-priority-translation-to-os-thread-priority – Clinton
To robi różnicę podpowiedź dla systemu operacyjnego. Niezależnie od tego, czy w ogóle nie ma znaczenia, czy nie używasz całego procesora, jest to pytanie, które mam. AFAIK, jeśli masz zapasowego procesora, każdy wątek, który może działać, będzie działał niezależnie od priorytetu. Ma to znaczenie tylko wtedy, gdy OS musi dokonać wyboru, który ma znaczenie priorytetowe. –