In Java gibt es eine Möglichkeit, die Priorität für den Thread, der die doInBackground()
Methode eines SwingWorker
Objekts aufrufen wird, zu setzen?Gibt es eine Möglichkeit, die Priorität des von einem SwingWorker verwendeten Hintergrund-Threads festzulegen?
In der Thread-API gibt es eine setPriority()
Methode. Die Methode SwingWorker.execute()
plant den Swingworker für die Ausführung in einem Worker-Thread. Ich möchte Zugriff auf diesen Arbeitsthread haben, um seine Priorität festzulegen.
Aus meiner Sicht stammt dieser Worker-Thread aus einem Standard-Worker-Thread-Pool. Würde der einzige Weg, dies zu bewältigen, darin bestehen, meinen eigenen Executor zu verwenden?
einreichen können, wenn Sie zu 100% aller Ihrer CPUs schließen verwenden, kann die Priorität Einstellung keinen Unterschied machen. Wenn Sie die gesamte CPU verwenden, ist die Priorität nur ein Hinweis, den die JVM oder das Betriebssystem ignorieren kann. IMHO Es wird dein Problem nicht lösen. –
Die Anwendung richtet sich speziell an Windows und die JVM ist die Standard Oracle JVM. Von dieser anderen Stapelüberlauffrage macht es einen Unterschied in diesem Szenario: http://stackoverflow.com/questions/297804/thread-api-priority-translation-to-os-thread-priority – Clinton
Es macht einen Unterschied für die Hinweis für das Betriebssystem. Ob es überhaupt einen Unterschied macht, wenn Sie nicht die ganze CPU benutzen, ist die Frage, die ich habe. AFAIK, wenn Sie eine Ersatz-CPU haben, läuft jeder Thread, der ausgeführt werden kann, unabhängig von der Priorität. Es spielt nur eine Rolle, wenn das Betriebssystem eine Entscheidung treffen muss, dass die Priorität zählt. –