Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
prostoteach
0 / 0 / 0
Регистрация: 03.10.2019
Сообщений: 4
1

Threads, потоки

09.02.2020, 21:35. Просмотров 248. Ответов 1

Здравствуйте, ребят, помогите решить задачу, не могу понять как все реализовать.
Создать класс Flood, который получает в конструкторе массив сообщений и согласованный с ним массив интервалов времени в миллисекундах и выводит одновременно соответствующие сообщения на экран через заданные интервалы времени. По нажатию на Enter приложение должно завершать свою работу (данную функциональность поместить в метод Flood.main).

Рекомендуемая структура класса Flood:
Java
1
2
3
4
5
6
7
public class Flood {
    private Thread[] threads;
    public Flood(String[], int[]) {...}
    public void start() {...}
    public void stop() {...}
    private static class Worker extends Thread {...}
    public static void main(String[] args) {...}
Входные данные (массив сообщений и массив пауз) записывать в коде класса Flood. Количество элементов в каждом из массивов - минимум 2.

Пример входной информации:
Java
1
2
String[] messages = new String[] { "hihi", "dasss", "wassdss" };
int[] times = new int[] { 22, 444, 335 };
В методе Check.main смоделировать ввод Enter через 2 сек.

Алгоритм моделирования консольного ввода (метод Check.main):
a) подменить системный поток ввода на свой собственный
Java
1
System.setIn(YOUR_OWN_INPUT_STREAM);
b) в отдельном потоке вызвать Flood.main
Java
1
2
Thread t = new Thread() { public void run() {Flood.main(null);}};
   t.start();
c) дождаться завершения Flood.main
Java
1
t.join();
d) восстановить системный поток
Java
1
System.setIn(CAСHED_VALUE_OF_SYSTEM_IN)
(4) Для реализации своего собственного потока ввода целесообразно создать класс, который расширяет абстрактный класс java.io.InputStream. При этом придется реализовать единственный абстрактный метод этого класса:

Java
1
public abstract int read() throws IOException;
Все методы класса InputStream (а также всех его наследников), которые читают байты из источника информации, в конечном счете вызывают метод read. Достаточно реализовать паузу в этом методе при первом его вызове, которая заставит поток выполнения, который вызвал метод read, ожидать. Метод read должен последовательно возвращать байты, которые соответствуют ограничителю строки, после чего постоянно возвращать -1 (признак того, что информации во входном потоке больше нет).
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2020, 21:35
Ответы с готовыми решениями:

Потоки демоны (Daemon threads)
Объясните зачем нужны потоки-демоны. В каких случаях они применяются ?

Threads и классы
Есть вопрос. Как известно создавая класс с интерфейсом Runnable мы потом можем добавить его в класс...

Threads и параллелизация
Есть функция которая вычисляет пиксели картинки допустим pic(0, width*height, buf) с 0 начинается и...

C++, Curl и threads-потоки
Есть такой пример у разработчиков CURL: http://curl.haxx.se/libcurl/c/multithread.html Суть - в 4...

Потоки (threads) и сжатие файлов
Всем привет! Я недавно изучаю C#, пытаюсь самостоятельно выполнять практические задания. Есть...

1
Thousbe
43 / 19 / 7
Регистрация: 04.05.2013
Сообщений: 53
11.02.2020, 12:41 2
Чтобы начать помогать, хотелось бы увидеть твой код, а то больше похоже на решите за меня...
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2020, 12:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сокеты (WinSock 2.0) и потоки (Threads) в WinXP Pro и WinServ 2003
Введение Пишу "клиент-серверное" приложение, чтобы руку "набить" (TCP/IP, не UDP). При подключении...

IO и threads
Посоветуйте плиз, что делать! возникает ошибка когда разные нитки пишут в один файл. "Probable IO...

Threads
Доброго времени суток. Возможно ли реализовать многопоточное консольное приложение, при этом...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.