En Java, ¿hay alguna manera de establecer la prioridad para el hilo que llamará al método doInBackground()
de un objeto SwingWorker
?¿Hay alguna manera de establecer la prioridad del subproceso en segundo plano utilizado por un SwingWorker?
En la API Thread hay un método setPriority()
. El método SwingWorker.execute()
programa el swingworker para su ejecución en un hilo de trabajo. Me gustaría tener acceso a ese hilo de trabajo para establecer su prioridad.
Según tengo entendido, esta cadena de trabajo proviene de un grupo de subprocesos de trabajo predeterminado. ¿La única forma de manejar esto es usar mi propio ejecutor?
A menos que utilice cerca del 100% de todas sus CPUs, el establecimiento de la prioridad podría no hace ninguna diferencia. Si está utilizando toda su CPU, la prioridad es solo una pista que la JVM o el sistema operativo pueden ignorar. En mi humilde opinión no va a resolver su problema. –
La aplicación está dirigida específicamente a Windows y la JVM es la Oracle JVM estándar. A partir de esta otra pregunta de desbordamiento de pila, hace una diferencia en este escenario: http://stackoverflow.com/questions/297804/thread-api-priority-translation-to-os-thread-priority – Clinton
Hace la diferencia a la pista dada al sistema operativo. Si hace alguna diferencia cuando no está usando toda la CPU, es la pregunta que tengo. AFAIK, si tiene una CPU de repuesto, cada subproceso que pueda ejecutarse se ejecutará independientemente de la prioridad. Solo importa cuando el sistema operativo tiene que elegir que las prioridades son importantes. –