«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Параллелизм потоков в Java

Параллелизм потоков в Java

Опубликовано 19 ноября 2024 г.
Просматривать:944

Thread Concurrency In Java

Параллелизм потоков или многопоточность в расширенной Java позволяет одновременно выполнять несколько потоков, повышая производительность и скорость реагирования в сложных приложениях. Вот краткое описание его ключевых концепций и утилит.

Основные особенности многопоточности в Java:

  1. Создание тем.
  2. Управление потоками с исполнителями
  3. Утилиты параллелизма
  4. Фреймворк разветвления/соединения
  5. Асинхронное программирование с готовым будущим

1️⃣ Создание тем.

  • Расширение потока: создайте новый поток, переопределив метод run().

  • Реализация Runnable: передача экземпляра Runnable в объект Thread.

  • Реализация Callable: в отличие от Runnable, Callable позволяет потокам возвращать результат и обрабатывать проверенные исключения.

2️⃣ Управление потоками с помощью исполнителей.

  • Java's Executor Framework (java.util.concurrent.ExecutorService) управляет пулами потоков, обеспечивая эффективную обработку задач.

  • Исполнители, такие как FixThreadPool и CachedThreadPool, создают пул повторно используемых потоков, эффективно управляя ими, чтобы снизить накладные расходы на создание новых потоков.

3️⃣ Утилиты параллелизма

  • Блокировки: расширенные механизмы блокировки, такие как ReentrantLock, обеспечивают большую гибкость, чем синхронизированные методы, позволяя блокировать по времени и прерывать.

  • Атомарные переменные: пакет java.util.concurrent.atomic включает атомарные классы (AtomicInteger, AtomicLong), которые предлагают потоки без блокировок -
    безопасные операции.

  • Синхронизаторы: включают такие утилиты, как:
    CountDownLatch: позволяет потоку ждать завершения других потоков
    задачи.
    CyclicBarrier: синхронизирует фиксированное количество потоков с общим
    точка барьера.
    Семафор: контролирует доступ к ресурсам, разрешая определенный номер
    параллельных потоков.

4️⃣ Платформа разветвления/соединения

  • 1. Для задач «разделяй и властвуй» ForkJoinPool разбивает задачу на более мелкие подзадачи, которые обрабатываются параллельно, что особенно полезно в рекурсивных алгоритмах.

5️⃣ Асинхронное программирование с готовым будущим

  • CompletableFuture обеспечивает асинхронное и неблокирующее программирование, позволяя объединять и объединять задачи для сложных рабочих процессов.

Использование примера темы

Вызов основного класса в двух разных потоках

public class ThreadConcurrence {
    public static void main(String[] args) {
        // There is 2 type you have to call thread method
                //1- Extend Thread class
                //1- Implements Runnable class
        // why Implement concept is introduce here
                // because in java multiple thread dose not support that's so why implement class will introduce
                // ex- when u extend (inherit) base call, then at that time this call can not extend another Thread class.
        int n = 10;
        for (int i = 0; i 



Thread1 -- (расширяет поток)

public class Thread1 extends Thread{
    //If you are extend Thread class then you  most be used run()
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread1 is running now....");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Thread2 -- (реализует Runnable)

public class Thread2 implements Runnable {
    //IF you are implement thread Then run() will be executed.
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread2 is running.......");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Заключение :

Используя эти инструменты и платформы, расширенная многопоточность Java позволяет создавать масштабируемые, высокопроизводительные приложения, которые могут беспрепятственно выполнять параллельные задачи.

Для получения более подробной информации не стесняйтесь упоминать свой Linkedin и GitHub для получения подробных примеров и образцов кода! Дайте мне знать, если вам нужны какие-либо конкретные изменения.

Linkedin: https://www.linkedin.com/in/pravanjan-17p/

GitHub: https://github.com/Prabhanjan-17p

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/pravanjan17p/thread-concurrency-in-java-idb?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3