Лучше ли sleep() чем yeld(), и если да, то чем?

170
09 января 2019, 08:40

Чем Thread.sleep(1) лучше Thread.yeld()?

Answer 1

Давший этот совет поверхностно разбирается в вопросе. Или вовсе не разбирается. Сравнивать эти методы не совсем корректно, у них разное назначение.

  • Thread.sleep() останавливает поток на количество миллисекунд указанное в аргументе. Если нет других потоков, готовых к работе, процессор будет простаивать.
  • Thread.yield() заявляет о намерении потока уступить выполнение другим потокам. Если есть другие потоки, готовые к работе, контекст выполнения будет переключен на один из них. Если нет, то текущий поток продолжит своё выполнение.

Важно понимать, время вызова Thread.yield() может измеряться наносекундами, в то время как Thread.sleep(1) остановит поток на миллисекунду. То есть вы можете замедлить вашу программу в сотни тысяч раз, если логика кода в переключении между потоками. С другой стороны, если логика именно в ожидании, то Thread.yield() вообще ничего не даст.

Answer 2

Ничем, Thread.sleep(1) не лучше Thread.yeld().

READ ALSO
RecyclerView при нажатии на конкретный элемент открывается другой RecyclerView

RecyclerView при нажатии на конкретный элемент открывается другой RecyclerView

Я разрабатываю приложение под Android, и столкнулся с очень трудной задачейУ меня есть фрагмент содержащий RecyclerView который содержит изображения(примерно...

163
Что нужно знать Java EE developer'у? [закрыт]

Что нужно знать Java EE developer'у? [закрыт]

Что и в каком порядке изучать для Java EE?

208
Кодовые точки, кодовые единицы. Тип char, String

Кодовые точки, кодовые единицы. Тип char, String

Как я прочитал в книге КХорстмана, что некоторые символы из UNICODE представляются с дополнением

191
android login to onlyoffice

android login to onlyoffice

Никак не могу добиться JSON ответа от сервера OnlyOffice, приходит plain/text, всю голову сломал, использую async-http:14

184