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

  • Suspended

  • авпвпв. Романов Д.В._Программировние_ПЗ.docx.. Вопрос Поточная модель Java


    Скачать 17.92 Kb.
    НазваниеВопрос Поточная модель Java
    Анкоравпвпв
    Дата16.01.2022
    Размер17.92 Kb.
    Формат файлаdocx
    Имя файлаРоманов Д.В._Программировние_ПЗ.docx..docx
    ТипДокументы
    #332679

    Вопрос 1. Поточная модель Java.

    Поток – это наименьший шаг в процессе. Потоки работают параллельно друг с другом. Их называют легковесными процессами. Они используют адресное пространство процесса и совместно используют его с другими потоками.

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

    Модель потоков реализуется иерархией классов, описывающих потоки. Класс Thread и интерфейс Runnable составляют основу этой иерархии. Чтобы создать поток, необходимо либо расширить класс Thread, либо реализовать интерфейс Runnable. При включении Программы на java сначала начинает выполняться главный поток. В главном потоке порождаются все дочерние потоки. Java-программа начинается с главного потока и заканчивается главным потоком. В этом случае класс Thread инкапсулирует поток выполнения. Главный поток создается автоматически, в отличие от дочерних потоков.

    Потоки могут пребывать в нескольких состояниях:

    New – когда создается экземпляр класса Thread, поток находится в состоянии new. Он пока еще не работает.

    Running — поток запускается, и процессор начинает его выполнять. Во время выполнения состояние потока также может измениться на Blocked, Runnable или Dead.

    Suspended — запущенный поток приостанавливает свою работу, вы можете возобновить его выполнение. Поток выполняется с того места, где он был остановлен.

    Blocked — поток ожидает освобождения ресурсов или завершения операции ввода-вывода. В этом состоянии поток не потребляет процессорного времени.

    Terminated — поток немедленно прекращает выполнение. Его работа не может быть возобновлена. Завершение потока может быть вызвано ситуациями, когда код потока полностью выполнен или возникла ошибка при выполнении потока

    Dead — как только поток завершает свое выполнение, его состояние меняется на «dead», что означает, что он завершает свой жизненный цикл.

    Вопрос 2. Характеристики языка Java.

    Кроссплатформенность — главная особенность Java, объясняющая все остальные особенности языка: технически Java — это язык, работающий на виртуальной машине. В принципе, можно создать архитектуру, которая непосредственно выполняет код Java, но в стандартной среде, такой как Windows или UNIX, установка Java на машине означает установку виртуальной машины. Когда программы запускаются, считается, что они выполняются на виртуальной машине. В других языках, таких как C или C++, результатом компиляции является исполняемый файл, содержащий машинные инструкции для той архитектуры, для которой был создан компилятор (то есть скомпилированный программный код привязан к операционной системе). Для языка Java этот процесс также называется компиляцией, но это не компиляция в прямом смысле этого слова. При компиляции кода для Java создается байт-код, то есть код, который выполняется на виртуальной машине Java. Байт-код не привязан к какому-либо языку программирования или операционной системе. А сама виртуальная машина Java ориентирована на конкретную операционную систему.

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

    Java — это объектно-ориентированный язык программирования. Он предназначен для разработки графических приложений, управляемых событиями (то есть для создания графического пользовательского интерфейса, поддерживающего действия типа «укажи и щелкни»). Эти приложения могут быть отдельными программами (Application) или апплетами (Applet), загруженными из Интернета.

    С одной стороны, при наличии «универсального» языка программирования программы можно устанавливать и запускать на машинах пользователей вне зависимости от характеристик платформы. Поэтому с помощью Java создаются апплеты — программы, которые можно скачать из Интернета. Неважно, какая операционная система используется для подключения к Интернету: если на ней установлена ​​Java, она будет работать с апплетами, доступными в сети. С другой стороны, программы, написанные на Java, работают медленнее, чем программы, скомпилированные для конкретной архитектуры

    Java не предоставляет возможности писать код, который напрямую обращается к адресам в памяти компьютера, как в некоторых языках, таких как C и C++ (с использованием указателей). Эта особенность языка Java поддерживает безопасность программы.


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