Recently I was asked by a programmer, what to do if there simply is no other way than actually busy-wait.

I see several options:

* Do nothing: Costs valuable CPU time and increases carbon footprint.

* Do a power-nap: Thread.sleep(1)

* Be fair: Thread.yield() gives other threads a chance to execute in this time slot.

* Be eco-friendly: Thread.onSpinWait() could reduce carbon footprint.

* A combination of that, like "Thread.yield(); Thread.onSpinWait();"

As all of that has its pros and cons, and as all of that works differently on each hardware platform, I do wonder if there is some common sense / best practice for busy wait (other than "Replace it using async") in the core-libs team?

Thanks!

-Markus



Reply via email to