Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

203
Visualizações
¿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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda