Какой конкретно поток ставит на паузу метод “Thread.sleep()”?

162
10 октября 2019, 22:50

Создаю поток следующим образом:

public class Program        //Класс с методом main().
{
    public static void main(String[] args)
    {
        //Создание потока
        Thread myThready = new Thread(new Runnable()
        {
            public void run() //Этот метод будет выполняться в побочном потоке
            {
                System.out.println("Привет из побочного потока!");
                Thread.sleep(200);// пауза текущего потока или главного?
                // чем тогда отличается от Thread.currentThread().sleep(200); ?
            }
        });
        myThready.start();  //Запуск потока
        System.out.println("Главный поток завершён...");
    }
}

Метод Thread.sleep(200) какой конкретно поток ставит на паузу? Чем тогда это отличается от Thread.currentThread().sleep(200) ?

Answer 1
Thread.sleep(200)

действует на поток, в котором выполняется эта инструкция

Thread.currentThread().sleep(200)

делает то же самое, посредством ссылки на экземпляр потока, не надо так делать так как это вызов статического метода из у экземпляра класса

READ ALSO
Работа с PDF в JEE

Работа с PDF в JEE

Делаю на JSF страничку на которой будет каталог файлов PDF с возможностью удаления/добавленияПодскажите как лучше реализовать хранение PDF, сначала...

178
Работа с датой в Android

Работа с датой в Android

Как спарсить дату из формата ддмм

162
fst += (sec - (sec = fst)); нет ли здесь неопределенности?

fst += (sec - (sec = fst)); нет ли здесь неопределенности?

нормальный ли это способ дать переменным обменяться значениями без использования третьей? fst и sec в шапке обычные int переменные, пишу на javaВыглядит,...

163
Проблема с subscription при schema stitching в apollo server

Проблема с subscription при schema stitching в apollo server

Помогите найти ошибку как правильно подключить subscription при schema stitching

151