JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Многопоточное чтение и запись файлов

    JAVA 25 SELF
    59 уровень,0 лекция
    Практическое пособие по параллельной работе с файлами в Java: когда многопоточность действительно ускоряет IO и когда нет, выбор инструментов — Thread, пул потоков через ExecutorService, асинхронность с CompletableFuture и параллельные стримы — а также чтение больших файлов по кускам через FileChannel, безопасная запись в общий лог и ограничения ОС/ФС. Разбираем шаблоны запуска задач, настройки пулов, методы shutdown()/ awaitTermination() и типичные ошибки.
    Открыта
  • Параллельная обработка файлов: ForkJoin, Parallel Streams

    JAVA 25 SELF
    59 уровень,1 лекция
    Практическое руководство по распараллеливанию файловых задач в Java: как включить параллельность в Stream API методом parallel()/ parallelStream(), как работает и настраивается ForkJoinPool и когда лучше использовать RecursiveTask. Обсудим, где параллельность действительно ускоряет I/O, как управлять общим пулом потоков, и как безопасно закрывать ресурсы ( try-with-resources). В финале — быстрый взгляд на позиционный доступ через FileChannel для чтения/записи частей больших файлов.
    Открыта
  • Параллельные обходы ФС: Files.walk + parallel() и ForkJoin

    JAVA 25 SELF
    59 уровень,2 лекция
    Как ускорить обход больших директорий и обработку тысяч файлов: используем Files.walk() и параллельные стримы через parallel(), понимаем роль ForkJoinPool.commonPool() и настраиваем степень параллелизма. Разбираем, когда лучше перейти на ExecutorService, чем отличаются CPU-bound и IO-bound задачи, пишем пример подсчёта строк во всех ".java"-файлах и фиксируем best practices.
    Открыта
  • Разделение больших файлов на куски

    JAVA 25 SELF
    59 уровень,3 лекция
    Как ускорить обработку гигабайтных файлов: делим их на чанки (chunking), используем позиционный доступ через FileChannel и memory-mapped буферы MappedByteBuffer, параллелим вычисления с ExecutorService. Разберём ключевые методы позиционного ввода-вывода: position(...), read(...), write(...), критерии выбора размера чанка, пример параллельного подсчёта слов и типичные ошибки (границы чанков, ресурсы, количество потоков).
    Открыта
  • Конвейеры обработки файлов: producer–consumer

    JAVA 25 SELF
    59 уровень,4 лекция
    Разбираем, как организовать конвейер обработки файлов по паттерну Producer–Consumer с безопасным обменом через BlockingQueue (например, ArrayBlockingQueue), как работают блокирующие операции put() и take(), зачем нужен механизм backpressure и как корректно завершать потоки с помощью «poison pill» (например, "__END__", а не null). Запускаем потребителей через ExecutorService, добавляем визуализацию конвейера и разбираем типичные ошибки.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush