Проблемы синхронизации потоков — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Проблемы синхронизации потоков

2017-06-02 259
Проблемы синхронизации потоков 0.00 из 5.00 0 оценок
Заказать работу

 

В классе TTread не зря введен метод синхронизации потоков. Он необходим, чтобы как-то блокировать неприятные ситуации, которые могут случиться. Следует отметить, что в примерах выше имеются дополнительные трудности, связанные с использованием бесконечно работающих потоков (бесконечные циклы). Поэтому даже в случае двух потоков стандартные методы синхронизации иногда не справляются.

Если в процессе работает несколько потоков, то можно ожидать две основные неприятности: тупики и гонки. Тупики возникают, когда два или более потоков ожидают один и тот же ресурс и блокируют друг друга, так как не прописан механизм, какой поток должен в такой ситуации получить нужный ресурс. Гонки возникают, когда два или более потоков используют один и тот же ресурс и изменяют его в непредусмотренном порядке, поскольку операционная система может поменять очередность работы потоков. Для разрешения указанных ситуаций и некоторых других разрабатываются дополнительные механизмы синхронизации: функции ожидания и объекты синхронизации.

Среди функций чаще всего используются WaitForSingleObject и WaitForMultipleObjects ( функции Windows API). Среди объектов выделяются Critical Section (критическая секция), Event (событие), Mutex (взаимное исключение), Semaphore (семафор), Timer (таймер). В различных случаях выбирается свой вариант.

 

 


 

СПИСОК ИСПОЛЬЗУЕМЫХ В ПРИМЕРАХ КОМПОНЕНТОВ

 

В табл. 17 приводится перечень используемых компонентов, которые понадобились при решении примеров.

Таблица 17

Список используемых компонентов и других классов

Пример Компоненты
Пример 1 TButton, TLabel, TEdit
Пример 2 TPanel, TBitBtn
Пример 3 TBevel
Пример 4 TImage
Пример 5 TListBox
Пример 6 TMemo
Пример 7 TComboBox
Пример 8 TStringGrid
Пример 9 TRadioGroup, TRadioButton
Пример 10 TCheckBox, TDrawGrid
Пример 12 TTabControl
Пример 13 TPageControl, TSpinEdit
Пример 14 TTimer
Пример 17 TMainMenu
Примеры 18 TListView
Пример 19 TColorBox, TList
Пример 20 Проект с двумя формами
Пример 21 TChart, TFileStream, TOpenDialog, TSaveDialog
Пример 22 TMemoryStream
Пример 24 TActionList, TCoolBar, TToolBar, TSplitter
Пример 27 TThread
Пример 28 TProgressBar, TTrackBar

 


 

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

 

1. Тодд Миллер, Дэвид Пауэл и др. Использование Delphi 3. – Киев, Москва: ”Диалектика”, 1997,768 с.

2. Марко Кэнту. Delphi 4. – Москва, Харьков, Минск, Санкт-Петербург: “Питер”, 1999, 1114 с.

3. Федоров А. Delphi 2.0 для всех. – М.: “КомпьютерПресс”, 1997, 464 с.

4. Гофман В., Хомоненко А. Delphi 6. – Дюссельдорф, Москва, Киев, Санкт-Петербург: “БХВ - Петербург”, 2001, 1152 с.

5. Дарахвелидзе П., Марков Е. Программирование в Delphi 7. – Санкт-Петербург: “БХВ-Петербург”, 2003, 784 с.


ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ.. 3

ОСНОВЫ DELPHI. 5

ОБЩАЯ ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ.. 5

ЯЗЫК ПРОГРАММИРОВАНИЯ.. 7

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ.. 7

ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ.. 8

СОБЫТИЙНО УПРАВЛЯЕМОЕ ПРОГРАММИРОВАНИЕ.. 9

WINDOWS-ПРИЛОЖЕНИЕ.. 11

СРЕДА ПРОГРАММИРОВАНИЯ.. 12

ПЕРВОНАЧАЛЬНЫЕ СВЕДЕНИЯ О ПРОЕКТЕ ПРИЛОЖЕНИЯ.. 15

ВСТРОЕННЫЙ ОТЛАДЧИК.. 17

ИСПОЛЬЗОВАНИЕ ВСТРОЕННЫХ КЛАССОВ.. 17

ИЕРАРХИЯ КЛАССОВ.. 17

ИСПОЛЬЗОВАНИЕ ПАЛИТРЫ КОМПОНЕНТОВ И ИНСПЕКТОРА ОБЪЕКТОВ 20

ИСПОЛЬЗОВАНИЕ ГРАФИКИ.. 21

ОСНОВНЫЕ ИНСТРУМЕНТЫ... 22

ГРАФИЧЕСКИЕ ДАННЫЕ И ПАЛИТРА.. 23

НЕКОТОРЫЕ ОБЩИЕ СВОЙСТВА КОМПОНЕНТОВ.. 26

СОХРАНЕНИЕ ПРОЕКТА.. 27

ПОСТРОЕНИЕ ПРОСТЕЙШЕГО ПРОЕКТА.. 28

ПОНЯТИЕ ИСКЛЮЧИТЕЛЬНОЙ СИТУАЦИИ.. 30

ВВЕДЕНИЕ В OBJECT PASCAL.. 31

СТРУКТУРА ПРИЛОЖЕНИЯ.. 32

СТРУКТУРА ПРОГРАММЫ-ПРОЕКТА.. 33

СТРУКТУРА МОДУЛЯ.. 33

ПРИМЕР 1. 36

ОПИСАНИЯ ПРОГРАММНЫХ ЭЛЕМЕНТОВ.. 40

ПРОГРАММНЫЕ ЭЛЕМЕНТЫ И АДРЕСА ПАМЯТИ.. 41

ОБЛАСТИ ВИДИМОСТИ.. 41

ПРАВИЛА ЗАПИСИ ИМЕН.. 42

ВРЕМЯ ЖИЗНИ ИДЕНТИФИКАТОРОВ.. 42

ИСПОЛЬЗОВАНИЕ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ В ПРИМЕРЕ 1. 42

ИСПОЛЬЗОВАНИЕ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ В ПРИМЕРЕ 1. 43

ТИПЫ... 44

ПРОСТЫЕ ТИПЫ... 45

ЦЕЛЫЕ ТИПЫ... 46

СИМВОЛЬНЫЕ ТИПЫ... 48

ЛОГИЧЕСКИЕ ТИПЫ... 48

ТИП ПЕРЕЧЕНЬ.. 49

ИНТЕРВАЛЬНЫЙ ТИП.. 50

ВЕЩЕСТВЕННЫЙ ТИП.. 50

ТИП ДАТА-ВРЕМЯ.. 52

ВЫРАЖЕНИЯ.. 53

КОНСТАНТЫ... 53

ТИПИЗИРОВАННЫЕ КОНСТАНТЫ. 53

ПЕРЕМЕННЫЕ.. 54

ОПЕРАЦИИ.. 54

ФУНКЦИИ.. 57

ПОРЯДОК ВЫЧИСЛЕНИЯ ВЫРАЖЕНИЙ.. 57

ВИДЫ ОПЕРАТОРОВ.. 57

ПРОСТЫЕ ОПЕРАТОРЫ... 58

СОСТАВНОЙ ОПЕРАТОР. 59

ОПЕРАТОРЫ УСЛОВНОГО ПЕРЕХОДА.. 60

ОПЕРАТОР IF. 60

ПРИМЕР 2. 60

ОПЕРАТОР CASE.. 64

ПРИМЕР 3. 64

ИСПОЛЬЗОВАНИЕ ENTER В ПРИМЕРЕ 3. 69

ОПЕРАТОРЫ ЦИКЛА.. 70

ОПЕРАТОР ЦИКЛА FOR.. 71

ПРИМЕР 4. 72

ОПЕРАТОР ЦИКЛА WHILE.. 77

ПРИМЕР 5. 77

ОПЕРАТОР ЦИКЛА REPEAT. 80

ПРИМЕР 6. 81

ИСПОЛЬЗОВАНИЕ ПРОЦЕДУР BREAK И CONTINUE.. 85

ПРИМЕР 7. 85

МАССИВЫ... 88

СТАТИЧЕСКИЕ МАССИВЫ... 88

ДИНАМИЧЕСКИЕ МАССИВЫ... 90

ПРИМЕР 8. 92

СТРОКИ.. 94

ПРИМЕР 9. 96

ЗАПИСИ (ОБЪЕДИНЕНИЯ) 101

ОПЕРАТОР WITH.. 103

ПРИМЕР 10. 103

СОВМЕСТИМОСТЬ И ПРЕОБРАЗОВАНИЕ ТИПОВ ДАННЫХ.. 112

ИДЕНТИЧНОСТЬ ТИПОВ.. 112

СОВМЕСТИМОСТЬ ТИПОВ.. 113

СОВМЕСТИМОСТЬ ПО ПРИСВАИВАНИЮ... 113

ПРЕОБРАЗОВАНИЕ ТИПОВ.. 114

ОПЕРАТОРЫ ОБРАБОТКИ ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ.. 114

ПРИМЕР 11. 117

МНОЖЕСТВА.. 120

ОПЕРАЦИИ НАД МНОЖЕСТВАМИ.. 121

ПРИМЕР 12. 123

ВАРИАНТНЫЙ ТИП ДАННЫХ.. 127

ПРОЦЕДУРЫ И ФУНКЦИИ.. 129

ПРОЦЕДУРА.. 130

ФУНКЦИЯ.. 131

РЕКУРСИЯ.. 133

ФОРМАЛЬНЫЕ И ФАКТИЧЕСКИЕ ПАРАМЕТРЫ... 133

ПАРАМЕТРЫ-ЗНАЧЕНИЯ.. 134

ПАРАМЕТРЫ-ПЕРЕМЕННЫЕ.. 134

ПАРАМЕТРЫ-КОНСТАНТЫ... 135

ПАРАМЕТРЫ БЕЗ ТИПА.. 135

МАССИВЫ ОТКРЫТОГО ТИПА.. 136

ПАРАМЕРЫ ПО УМОЛЧАНИЮ... 137

ПРОЦЕДУРА EXIT.. 138

ДИРЕКТИВЫ ПОДПРОГРАММЫ... 138

СОГЛАШЕНИЯ ПО ПЕРЕДАЧЕ ДАННЫХ.. 139

ДИРЕКТИВА FORWARD.. 139

ДИРЕКТИВА EXTERNAL. 140

ДИРЕКТИВА ASSEMBLER.. 140

ПЕРЕГРУЖЕННЫЕ ПОДПРОГРАММЫ... 140

ПРИМЕР 13. 141

КЛАССЫ... 147

ИНКАПСУЛЯЦИЯ.. 147

КЛАСС КАК ОБЪЕКТНЫЙ ТИП.. 148

НАСЛЕДОВАНИЕ.. 149

ОБЛАСТИ ВИДИМОСТИ.. 149

ОПЕРАЦИИ IS И AS. 150

МЕТОДЫ... 150

ВИДЫ МЕТОДОВ.. 151

МЕТОДЫ VIRTUAL И ПОЛИМОРФИЗМ... 152

МЕТОДЫ DYNAMIC.. 154

МЕТОДЫ MESSAGE.. 154

МЕТОДЫ ABSTRACT.. 155

МЕТОДЫ OVERRIDE.. 155

МЕТОДЫ CLASS.. 155

ПРИМЕР 14. 156

ДИНАМИЧЕСКОЕ СОЗДАНИЕ КОМПОНЕНТОВ.. 156

ИСПОЛЬЗОВАНИЕ КЛАССА СО СЧЕТЧИКОМ ОБЪЕКТОВ.. 158

ОТСЛЕЖИВАНИЕ РАЗРУШЕНИЯ ОБЪЕКТОВ.. 160

СОБЫТИЯ.. 160

УКАЗАТЕЛИ НА МЕТОДЫ... 162

ПРИМЕР 15. 163

ТИПЫ ССЫЛКИ НА КЛАСС.. 166

СВОЙСТВА.. 166

СВОЙСТВА SIMPLE.. 167

СВОЙСТВА ENUMERATED.. 168

СВОЙСТВА SET.. 168

СВОЙСТВА OBJECT.. 169

СВОЙСТВА ARRAY.. 170

ЗАДАНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ СВОЙСТВАМ... 172

ПРИМЕР 16. 174

ФАЙЛОВЫЕ ТИПЫ... 179

ТЕКСТОВЫЕ ФАЙЛЫ... 180

ТИПИЗИРОВАННЫЕ ФАЙЛЫ... 182

ФАЙЛЫ БЕЗ ТИПА.. 183

ДОПОЛНИТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ.. 184

ПРИМЕР 17. 184

КОМПОНЕНТ TMAINMENU.. 185

УКАЗАТЕЛИ.. 192

ПРИМЕР 18. 195

ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ.. 198

ОДНОНАПРАВЛЕННЫЕ СПИСКИ.. 199

ДВУНАПРАВЛЕННЫЕ СПИСКИ.. 201

СТЕКИ, ОЧЕРЕДИ.. 202

БИНАРНЫЕ ДЕРЕВЬЯ.. 203

ПРИМЕР 19. 205

ПРОЦЕДУРНЫЙ ТИП.. 213

ПРОГРАММНЫЕ ЕДИНИЦЫ DLL.. 213

ПРИМЕР 20. 214

ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ.. 220

ПОТОКИ ДАННЫХ.. 220

ПРИМЕР 21. 221

ПРИМЕР 22. 228

ИНТЕРФЕЙС DRAG AND DROP. 232

ПРИМЕР 23. 233

ТЕХНОЛОГИЯ DRAG AND DOCK.. 237

ПРИМЕР 24. 239

ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ WINDOWS API ПРИ РАБОТЕ С ФАЙЛАМИ 260

ПРИМЕР 25. 264

ИСПОЛЬЗОВАНИЕ ОТОБРАЖАЕМЫХ ФАЙЛОВ.. 267

ПРИМЕР 26. 269

ПРОГРАММНЫЕ ПОТОКИ.. 274

ПРИОРИТЕТЫ ПОТОКОВ.. 275

КЛАСС TTHREAD.. 276

ПРИМЕР 27. 277

ИСПОЛЬЗОВАНИЕ БЛОКИРОВКИ В ПРИМЕРЕ 27. 280

МНОГОПОТОЧНОЕ ПРИЛОЖЕНИЕ В ПРИМЕРЕ 28. 282

ПРОБЛЕМЫ СИНХРОНИЗАЦИИ ПОТОКОВ.. 288

СПИСОК ИСПОЛЬЗУЕМЫХ В ПРИМЕРАХ КОМПОНЕНТОВ.. 290

БИБЛИОГРАФИЧЕСКИЙ СПИСОК.. 291

 


 

 

Основы программирования на Delphi.

Учебное пособие.

 

 

Составители: Емельянов Виктор Иванович

Воробьев Виктор Ильич

Тюрина Татьяна Петровна

 

 

Редактор Т.П. Бабокина

 

 

Лицензия ЛР № 020714 от 02.09.93

Подписано в печать Формат 60 256 1/16

Бумага типографская. Отпечатано на ризографе.

Усл. печ. л. 16,00. Уч. изд. л. 19,73. Тираж 100 экз.

 

Заказ

 

Российский химико – технологический университет им. Д.И.Менделеева, Новомосковский институт. Издательский центр.

Адрес института: 301670 Новомосковск Тульской области, Дружбы, 8.

 

 


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.032 с.