Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Понятие потоков и процессов





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

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

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

Преимущество использования потоков следующие.

1. Разделение большой задачи на несколько подзадач, что повышает переносимость кода программы и возможности его многократного использования.

2. Дополнительные возможности управления приложением за счет управления приоритетами потоков.

3. Возможность снять проблему возрастания "нагрузки" на приложение, увеличением количества потоков.

Ассиметричные потоки – решающие различные задачи и не разделяющие совместные ресурсы. Необходимость в асимметричных потоках возникает в следующих случаях:

- когда в программе необходимы длительные вычисления, при этом сохраняя нормальную реакцию на ввод;

- при необходимости обработки асинхронного ввода/вывода с использованием различных устройств;

- если необходимо создать несколько окон и одновременно обрабатывать ввод в них данных.

Существует две проблемы, с которыми можно столкнуться при работе с потоками, — это тупики и гонки.

Тупики имеют место, когда один поток ожидает ресурс, который в данный момент принадлежит другому потоку. Например, поток 1 захватывает ресурс A, и для продолжения работы, ждет возможности захватить ресурс B. В то же время второй поток - Поток 2 захватывает ресурс B и ждет возможности захватить ресурс A. В результате этого сценария заблокируются оба потока; ни один из них не будет исполняться. Такими ресурсами могут выступать любые совместно используемые объекты системы — файлы, область памяти, внешние устройства. Гонки возникают в ситуации, когда два или более потока пытаются получить доступ к общему ресурсу и изменить его состояние. Пусть Поток 1 получил доступ к ресурсу и изменил его в соответствии со своими интересами; затем активизировался второй поток Поток 2 и обратился к этому же ресурсу до завершения Потока 1. Поток 1 полагает, что ресурс остался в том же состоянии, в каком был до переключения. В зависимости от того, когда именно был изменен ресурс, результаты могут меняться — иногда программа будет выполняться нормально, иногда нет.

Для разрешения ситуаций гонок и тупиков можно использовать некоторые приемы.

Date: 2015-06-06; view: 548; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию