Если мы создаем нить, то можем заморозить ее на время в методе run, но каким образом мы можем остановить ее на время извне?
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
sleep(400);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
}
}
};
t.start();
Thread.sleep(2000);
// Здесь должна быть команда которая позволяет заморозить выполнение нити t на 3 секунды
System.out.println("Нить t остановлена на 3 секунды");
}
UPDATE: Удалось пока решить вот так, но, может, кто подскажет лучшее решение:
public static void main(String[] args) throws InterruptedException {
class TestThread extends Thread {
private boolean flag;
public void setFlag(boolean flag) {
this.flag = flag;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
sleep(400);
if (flag)
sleepMe();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
}
}
private void sleepMe() {
try {
sleep(3000);
flag = false;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
TestThread t = new TestThread();
t.start();
Thread.sleep(2000);
t.setFlag(true);
System.out.println("Нить t остановлена на 3 секунды");
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как можно установить границы для текста? Откуда будет начинаться текста и до куда? Текст пересекает рамку, которая поставлена как задний...
Есть ли возможность как-то проще работать с runtime разрешениями в Android 60 и выше? Сейчас приходится делать как в этой статье и даже для одного...
Добрый вечер, помогите докончить этот код: метод set это изменять элемент, но как я не знаю, а insert вставить элемент, те
ЗдравствуйтеТакая проблема, не посылается запрос autocomplete на выполнение сервлета, смотрю через стандартный Chrome инструментарий