Java: Concurrency / Java: Параллелизм: 2.2. Pausing Execution with Sleep
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Приостановка выполнения с помощью метода Sleep maxpaint 03.06.14 в 09:23 |
|
|
`Thread.sleep` приостанавливает текущий поток на заданное время. Это является эффективным способом освободить процессорное время для других потоков этого же приложения или других приложений, которые могут выполняться в вычислительной системе. Метод `sleep` так же может быть использован для задания скорости выполнения алгоритма, как в приведенном ниже примере, и для ожидания другого потока, работа которого требует определенного времени, как в примере `SimpleThreads` из последующей части. rusnavu 18.06.14 в 09:19 |
||
|
Имеются две переопределенные версии команды 'sleep': одна которая определяет время засыпания в миллисекундах а другая версия в наносекундах. При этом, время засыпания не гарантированно точное, потому как ограниченичения в точности связанны с возможностями операционной системы. К томуже время засыпания может быть прекращенно в результате прерывания, как это будет показанно далее.В любом случае, вы не можете быть уверенны, что применение `sleep` приостановит поток на точно указанный период времени. lightharut 25.07.14 в 20:11 |
||
|
Пример [``SleepMessages``](examples/SleepMessages.java) использует `sleep` для вывода на экран сообщений с интервалом в четыре секунды: PKopachevsky 23.09.14 в 04:48 |
||
|
public class SleepMessages { rusnavu 18.06.14 в 09:13 |
||
|
Обратите внимание, что в объявлении метода "main" задано "`throws InterruptedException`". Это исключение, порождает метод 'sleep', когда другой поток прерывает текущий в то время как 'sleep' активен. Посколько в приложении не объявлено другого потока, который мог бы вызвать прерывание, не нужно беспокоиться об обработке исключения 'InterruptedException'. PKopachevsky 23.09.14 в 04:53 |
