Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
4 / 4 / 0
Регистрация: 07.03.2011
Сообщений: 48
1

остановка потока

05.04.2016, 15:34. Показов 563. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Начал изучать нити. Возник вопрос. Открываю новый потом main, жду 5 секунд и методом - iinterrup останавливаю его, но поток не останавливается. В чем может быть проблема?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Solution {
 
 
     public static void main(String[] args) throws InterruptedException {
        TestThread test = new TestThread();
        Thread testTr = new Thread(test);
        testTr.start();
        Thread.sleep(1000);
        testTr.interrupt();
    }
 
    
    public static class TestThread implements Runnable {
 
        Thread current = Thread.currentThread();
        @Override
        public void run()
        {
            while(!current.isInterrupted())
            {
                try
                {
                    Thread.sleep(500);
                }
                catch (InterruptedException e)
                {
                    e.printStackTrace();
                }
                System.out.println("Test Thread");
            }
        }
    }
}
Добавлено через 1 час 11 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Solution {
public static void main(String[] args) throws InterruptedException {
TestThread test = new TestThread();
// Thread testTr = new Thread(test);
test.start();
Thread.sleep(1000);
test.interrupt();
}
public static class TestThread extends Thread
{
public void run(){
while(!isInterrupted())
{
try
{
currentThread().sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println("primer");
}
}
}
Разобрался с implements Runnable. А если наследоваться от Thread. Просто с методом run работает. Но если добавить туда Thread.sleep(), перестает останавливаться.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2016, 15:34
Ответы с готовыми решениями:

Остановка потока
Делаю игру на java eclipse. Использую потоки. С помощью них создаю изображения на фрейме,...

Остановка потока
public class Potok implements Runnable { @Override public void run() { while...

Остановка потока
Добрый вечер, благодарю за предыдущие 2 подсказки, они не очень помогли! Моя первая программа уже...

Остановка потока. Выполнение действия по нажатию клавиши
Здравствуйте. У меня такой вопрос. Например у меня есть класс генерации чисел, и другой класс это...

2
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
05.04.2016, 18:02 2
После того как вы поймали InterruptedException - флаг interrupted для текущего потока будет сброшен
Чтобы его выставить обычно в catch (InterruptedException e) пишут Thread.currentThread().interrupt()
0
111 / 98 / 84
Регистрация: 18.12.2015
Сообщений: 567
06.04.2016, 12:52 3
Предлагаю вам почитать статью:

https://habrahabr.ru/post/164487/
0
06.04.2016, 12:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2016, 12:52
Помогаю со студенческими работами здесь

CountDownLatch и остановка потока
Есть поток, который должен засыпать на длительное время, но который нужно быстро остановить по...

По нажатию на кнопку из другого потока, нужно чтобы 2 потока останавливались
Есть 2 потока, в которых в цикле выполняется метод Thread.sleep(200); По нажатию на кнопку из...

Многопоточность: вызвать метод главного потока из второстепенного потока
Здравствуйте. Эта тема всеми избита, знаю. Но у меня очень ограничено время, поэтому рискую и...

Остановка forEach
try { Stream<String> stringStream = Files.lines(path, StandardCharsets.UTF_8); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru