Загрузка данных


import java.io.IOException;

/**
 * Третий класс, содержащий точку входа в программу.
 * Запускает оба потока и обеспечивает их корректное завершение
 * по требованию пользователя (нажатие Enter).
 *
 * @author Student
 * @version 1.0
 */
public class Main {

    /**
     * Точка входа.
     *
     * @param args аргументы командной строки (не используются)
     */
    public static void main(String[] args) {

        WriterThread writer = new WriterThread();
        CheckerThread checker = new CheckerThread();

        writer.start();
        checker.start();

        System.out.println("Потоки запущены. Нажмите Enter для остановки...");

        // Ожидание нажатия Enter
        try {
            System.in.read();
        } catch (IOException e) {
            System.err.println("Ошибка чтения с клавиатуры: " + e.getMessage());
        }

        // Требуем завершения обоих потоков
        writer.stopThread();
        checker.stopThread();

        // Ожидаем фактического завершения потоков
        try {
            writer.join();
            checker.join();
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
        }

        System.out.println("Оба потока корректно завершены.");
    }
}