Главная страница
Навигация по странице:

  • синхронизированный

  • блока

  • 2. Класс Thread для запуска потоков


    Скачать 370.13 Kb.
    Название2. Класс Thread для запуска потоков
    Дата08.12.2021
    Размер370.13 Kb.
    Формат файлаdocx
    Имя файла5java.docx
    ТипДокументы
    #295847

    1. Многопоточный подход, особенности

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





    2. Класс Thread для запуска потоков





    3. Интерфейс Runnable для запуска потоков

    В Java многопоточность программы организуется с помощью интерфейса Runnable и класса Thread, который наследуется от Runnable.

    4. Класс Thread для управления потоками



    5. Понятие группы потоков

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

    Группы потоков особенно полезны, поскольку внутри их можно запустить или приостановить все потоки, а это значит, что при этом не потребуется иметь дело с каждым потоком отдельно. Группы потоков предоставляют общий способ одновременной работы с рядом потоков, что позволяет значительно сэкономить время и усилия, затрачиваемые на работу с каждым потоком в отдельности.

    6. Управление группой потоков



    7. Потоки-демоны

    Демон в широком значении – фоновая программа. В Java потоки-демоны имеют схожий смысл: это потоки для фоновых действий по обслуживанию основных потоков. Потоки не-демоны называются пользовательскими (user thread). По сравнению с пользовательскими потоками демоны имеют меньший приоритет выполнения. Демоны не выполняют самостоятельных задач, поэтому не препятствуют остановке, программа завершается не дожидаясь окончания их работы.

    8. Проблемы совместного использования ресурсов

    C помощью ключевого слова synchronized можно сделать так, чтобы во время исполнения какой-либо программы одним потоком, другие потоки находились в режиме ожидания

    9. Синхронизированный блок

    Synchronized (с англ. "синхронизированный") - это ключевое слово, которое позволяет заблокировать доступ к методу или части кода, если его уже использует другой поток. Существует два применения synchronized - для метода и для блока кода.

    10. Синхронизированный метод

    Если другой поток выполняет синхронизированный метод, ваш поток заблокируется до тех пор, пока другой поток не отпустит монитор.

    11. Поля volatile

    Определение переменной с ключевым словом volatile означает, что значение этой переменной может изменяться другими потоками.

    1. Операции чтения/записи volatile переменной являются атомарными.

    2. Результат операции записи значения в volatile переменную одним потоком, становится виден всем другим потокам, которые используют эту переменную для чтения из нее значения.

    12. Методы класса Object для синхронизации потоков

    Возможность синхронизации в Java

    реализована в виде ключевого слова synchronized, указывающего на

    необходимость получения монопольной блокировки, и трех методов

    условной синхронизации, wait(), notify(), notifyall(), определенных в

    классе Object и поэтому наследуемых любым другим классом.

    13. Правила прерывания потоков, запрещенные методы

    Распространенный способ завершения потока представляет опрос логической переменной. И если она равна, например, false, то поток завершает бесконечный цикл и заканчивает свое выполнение. Распространенный способ завершения потока представляет опрос логической переменной. И если она равна, например, false, то поток завершает бесконечный цикл и заканчивает свое выполнение. Либо мы можем сразу же в блоке catch выйти из цикла с помощью break. Если бесконечный цикл помещен в конструкцию try...catch, то достаточно обработать InterruptedException


    написать администратору сайта