Thread.sleep(1000);
Почему после того как мы кладем спать программа останавливается?
Написал всё сам и решил со второй попытки, но это строку вставил в код только потому что интуиция подсказала именно так сделать.
Другого логического объяснения я для себя не нашёл.
Когда мы прописываем эту строку, то программа после сна завершается через секунду, но почему?Александр
25 уровень
Разъясните кто понимает.
Решен
Комментарии (11)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Stas Stafforkin
12 сентября 2020, 10:59
Thread.sleep ( ) в блок try-catch.
try {
Thread.sleep ( 1 0 0 0 ) ;
catch ( InterruptedException е ) {
// Досрочное nробуждение
}
0
hidden #2322530
11 сентября 2020, 16:36
потому что Thread.sleep(1000) приостанавливает работу нити на 1 сек. (засыпает)
sleep с английского "спать"
0
Александр
12 сентября 2020, 08:41
Это я понимаю
Вопрос в том, почему программа завершается?
Ведь мы прописали ей приостановиться, а не завершиться окончательно
Или сон означает сколько ей по времени нужно отработать еще?
Или сколько она должна подождать, что бы продолжить работу?
Вот в чем вопрос
0
hidden #2322530
12 сентября 2020, 10:39
сколько времени она должна постоять на месте, чтобы потом продолжить работать. то есть программа поспала секунду и пошла дальше работать.
0
Александр
12 сентября 2020, 14:21
Это тоже понятно
В данной задаче если не вводить эту строку, то цикл не остановится и будет печатать
А когда добавляешь эту строку , то печатается всего 4 строчки в консоль и программа останавливается. Так вот у меня в этом и вопрос. Почему программа останавливается, только когда добавлена эта строка?
0
hidden #2322530
12 сентября 2020, 14:42
какой цикл. выложи код, тогда можно будет предметно поговорить
0
Александр
15 сентября 2020, 11:24
0
hidden #2322530
15 сентября 2020, 11:27решение
а в каком месте тебя смущает эта строка?
в строке 14 или 44?
+2
Александр
15 сентября 2020, 11:42решение
на 44
но это только что потеряло смысл)
Пока тебе писал пришло понимание))
В строке 12 указано сколько спать основной нити и потом через
Кладут всю программу
Спасибо)
+3
hidden #2322530
15 сентября 2020, 11:54
да. но sleep(1000) в методе print делает имитацию часов, чтобы пересчёт был через секунду. иначе каждую миллисекунду считает и тебе кажется что цикл работает бесконечно
0
Александр
15 сентября 2020, 11:57
да, именно так меня и осенило почему выводится всего четыре строки, а не то множество которое было до этого)
Ты навел меня на очевидную мысль, которую я как то упустил при чтении кода)
Спасибо еще раз)
0