Готовый перевод Java: Concurrency / Java: Параллелизм: 2.2. Pausing Execution with Sleep

Приостановка выполнения с помощью метода Sleep

`Thread.sleep` приостанавливает текущий поток на заданное время. Это является эффективным способом освободить процессорное время для других потоков этого же приложения или других приложений, которые могут выполняться в вычислительной системе. Метод `sleep` так же может быть использован для задания скорости выполнения алгоритма, как в приведенном ниже примере, и для ожидания другого потока, работа которого требует определенного времени, как в примере `SimpleThreads` из последующей части.

Имеются две переопределенные версии команды 'sleep': одна которая определяет время засыпания в миллисекундах а другая версия в наносекундах. При этом, время засыпания не гарантированно точное, потому как ограниченичения в точности связанны с возможностями операционной системы. К томуже время засыпания может быть прекращенно в результате прерывания, как это будет показанно далее.В любом случае, вы не можете быть уверенны, что применение `sleep` приостановит поток на точно указанный период времени.

Пример [``SleepMessages``](examples/SleepMessages.java) использует `sleep` для вывода на экран сообщений с интервалом в четыре секунды:

public class SleepMessages {
public static void main(String args[])
throws InterruptedException {
String importantInfo[] = {
"Mares eat oats",
"Does eat oats",
"Little lambs eat ivy",
"A kid will eat ivy too"
};

for (int i = 0;
i < importantInfo.length;
i++) {
//Pause for 4 seconds
Thread.sleep(4000);
//Print a message
System.out.println(importantInfo[i]);
}
}
}

Обратите внимание, что в объявлении метода "main" задано "`throws InterruptedException`". Это исключение, порождает метод 'sleep', когда другой поток прерывает текущий в то время как 'sleep' активен. Посколько в приложении не объявлено другого потока, который мог бы вызвать прерывание, не нужно беспокоиться об обработке исключения 'InterruptedException'.

Переведено на Нотабеноиде
http://notabenoid.org/book/43683/171671

Переводчики: rusnavu, PKopachevsky, maxpaint, lightharut

Настройки

Готово:

100.00% КП = 1.0