Если убрать все из метода run, то программа будет считывать строки бесконечно, почему так? Мы один раз запустили reader.readLine в 16 строке, где он отработал и более reader не вызывается.
Vit
25 уровень
Задачу решил, но не могу понять, почему программа постоянно считывает строки.
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Vit
24 апреля 2019, 07:58
package com.javarush.task.task16.task1628;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
public class Solution {
public static volatile AtomicInteger readStringCount = new AtomicInteger(0);
public static volatile BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
//read count of strings
int count = Integer.parseInt(reader.readLine());
//init threads
ReaderThread consolReader1 = new ReaderThread();
ReaderThread consolReader2 = new ReaderThread();
ReaderThread consolReader3 = new ReaderThread();
consolReader1.start();
consolReader2.start();
consolReader3.start();
while (count > readStringCount.get()) {
}
consolReader1.interrupt();
consolReader2.interrupt();
consolReader3.interrupt();
System.out.println("#1:" + consolReader1);
System.out.println("#2:" + consolReader2);
System.out.println("#3:" + consolReader3);
reader.close();
}
public static class ReaderThread extends Thread {
private List<String> result = new ArrayList<String>();
public void run() {
//add your code here - добавьте код тут
}
@Override
public String toString() {
return result.toString();
}
}
}
0
IceBergMaster
24 апреля 2019, 08:06решение
Я так понимаю содержимое run() нужно удалить?
Тогда будет работать вечный цикл Консоль вообще работает на протяжении всей работы программы, но это не означает, что где-то есть запрос на считывание, или что написанное где-то сохраняется. Просто программа висит, а вы пишите в пустоту.
+2
Vit
24 апреля 2019, 08:08
капец я затупил... а я уже 2-ой час сижу и пытаюсь понять что пытается считать строку, а оказывается консоль всегда готова принять "ввод", а прога просто висит xD спасибо
0
IceBergMaster
24 апреля 2019, 07:55
Куда смотреть?
0