Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

201
Vistas
¿Hay algún beneficio para Thead.onSpinWait() mientras se trabaja con CPU Bound?

Sí, esto es similar al método onSpinWait​() de la clase Thread - Java 9 , pero un poco más matizado...

 static boolean isPrime(long candidate) { if ((candidate & 1) == 0) // filter out even numbers return (candidate == 2); // except for 2 var limit = (long) Math.nextUp(Math.sqrt(candidate)); for (long divisor = 3; divisor <= limit; divisor += 2) { Thread.onSpinWait(); // TODO is this a good practice in this context? if (candidate % divisor == 0) return false; } return true; }

El javadoc para Thread.onSpinWait() dice

Indica que la persona que llama no puede avanzar momentáneamente, hasta que ocurra una o más acciones por parte de otras actividades. Al invocar este método dentro de cada iteración de una construcción de bucle de giro y espera, el subproceso de llamada indica al tiempo de ejecución que está ocupado esperando. El tiempo de ejecución puede tomar medidas para mejorar el rendimiento de la invocación de construcciones de bucles de giro y espera.

Sin embargo, en mi caso de uso, esto no es exactamente una espera ocupada, en realidad está haciendo un trabajo útil. Mi intención con Thread.onSpinWait() es dar una pista a la JVM para inyectar algo de optimización si es posible.

En las pruebas, el uso de Thread.onSpinWait() definitivamente incurre en una gran penalización de rendimiento, pero ¿hay alguna razón para creer que podría beneficiar a otros subprocesos que se ejecutan en la misma JVM, el mismo sistema operativo? Por ejemplo, ¿el uso Thread.onSpinWait() ofrece algo de amabilidad a otros subprocesos? Por ejemplo, ¿esto empuja mi hilo/tarea a un segundo plano o cambia su prioridad, sin tener que recurrir a la gestión de prioridad de hilos?

Supongo que podría probar esto, pero sería algo difícil de probar... 🤔

Sin saber qué hace específicamente la JVM con esta sugerencia, es difícil para mí razonar sobre...

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda