Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

198
Views
¿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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!