У меня есть java программа, содержащая необходимый бесконечный l oop. Очевидно, что простое оставление l oop как есть приводит к тому, что программа использует максимальное время, данное ему планировщиком, поэтому я хотел бы получить текущий временной интервал, когда больше вычислений для этого времени не может быть выполнено.
Я уже пробовал Thread.yield()
, Thread.onSpinWait()
(хотя я не уверен, что это на самом деле делает то, что я думаю, что я), и Thread.sleep(0)
. Все они либо игнорируются в 99% случаев, либо просто не работают.
Единственное, что действительно работает, это Thread.sleep(x)
, что снижает использование процессора с ~ 100% до ~ 2%. Тем не менее, спать в течение определенного времени кажется мне плохой идеей. В данный момент я пишу синтезатор, и поэтому мне нужно как можно скорее откатить время, чтобы снова заполнить аудио буфер.
Я не могу просто увеличить размер аудио буфера, так как это происходит быстро вводит чрезвычайно заметные задержки системы.
Есть ли способ последовательно выдавать мой текущий временной интервал?