BigEdu.ru
» » » Робота з "потоками" в середовищі Delphi
Вернуться назад

Робота з "потоками" в середовищі Delphi

Робота з « потоками » в середовищі Delphi


Працюючи з Delphi, потрібно мати на увазі: цей чудовий продукт не тільки спрощує розробку складних додатків, він використовує при цьому всі можливості операційної системи. Одна з можливостей, яку підтримує Delphi, – це так звані потоки (threads) або нитки.

Потоки дозволяють в рамках однієї програми вирішувати декілька задач одночасно. З недавніх пір операційні системи для персональних комп'ютерів зробили це можливим.

Операційна система (ОС) надає додатку деякий інтервал часу центрального процесора (ЦП) і в мить, коли додаток переходить до очікування повідомлень або звільняє процесор, операційна система передає управління іншій задачі. Тепер, коли комп'ютери з більш ніж одним процесором різко впали в ціні, а операційна система Windows NT може використовувати наявність декількох процесорів, користувачі дійсно можуть запускати одночасно більше однієї задачі. Плануючи час центрального процесора, Windows 95 або Windows NT розподіляють його між потоками, а не між додатками. Щоб використовувати всі переваги, забезпечувані декількома процесорами в сучасних операційних системах, програміст повинен знати, як створювати потоки.

У цьому рефераті розглядаються наступні питання:

· що таке потоки;

· різниця між потоком і процесом;

· переваги потоків;

· клас TThread в Delphi;

· реалізація багатопотокового додатку;

· синхронізація потоків.

Визначення потоку досить просте: потоки – це об'єкти, одержуючі час процесора. Час процесора виділяється квантами (quantum, time slice). Квант часу – це інтервал, що є у розпорядженні потоку доти. поки час не буде передано в розпорядження іншого потоку.

Кванти виділяються не програмам або процесам, а породженим ними потокам. Як мінімум, кожен процес має хоча б один (головний) потік, але сучасні операційні системи, починаючи з Windows 95 (для прихильників Borland Kylix і Linux також), дозволяють запустити в рамках процесу декілька потоків.

Найпростіший приклад їх використовування – додатки з складу Microsoft Office. Наприклад, пакети Excel і Word задіють по декілька потоків. Word може одночасно коректувати граматику і друкувати, при цьому здійснюючи введення даних з клавіатури і миші; програма Excel здатна виконувати фонові обчислення і друкувати.

Примітка

Взнати число потоків, запущених додатком, в Windows NT, 2000 і ХР можна за допомогою утиліти Task Manager (Диспетчер задач). Для цього серед показників, що відображаються у вікні Processes, потрібно вибрати опцію Thread Count. Так, у момент написання цих рядків MS Word використовував 5 потоків, середовище Delphi – 3.

Якщо задачі додатку можна розділити на різні підмножини: обробка подій, введення / висновок, зв'язок і ін., то потоки можуть бути органічно вбудовані в програмне рішення. Якщо розробник може розділити велику задачу на декілька дрібних, це тільки підвищить переносимість коду і можливості його багатократного використовування.

Зробивши додаток багатопотоковим, програміст дістає додаткові можливості управління їм. Наприклад, через управління пріоритетами потоків. Якщо один з них «пригальмовує» додаток, займаючи дуже багато процесорний час, його пріоритет може бути знижений.

Інша важлива перевага упровадження потоків – при зростанні «навантаження» на додаток можна збільшити кількість потоків і тим самим зняти проблему.

Потоки спрощують життя тим програмістам, які розробляють додатки в архітектурі клієнт/сервер. Коли потрібне обслуговування нового клієнта, сервер може запустити спеціально для цього окремий потік. Такі потоки прийнято називати симетричними потоками (symmetric threads) – вони мають однакове призначення, виконують один і той же код і можуть розділяти одні і ті ж ресурси. Більш того, додатки, розраховані на серйозне навантаження, можуть підтримувати пул (pool) однотипних потоків. Оскільки створення потоку вимагає певного часу, для прискорення роботи бажано наперед мати потрібне число готових потоків і активізувати їх у міру підключення чергового клієнта.

Примітка

Такий підхід особливо характерний для Web‑серверу Microsoft Internet Information Services і додатків, оброблювальних запити в його середовищі. Якщо ви створюєте додатки ISAPI на Delphi, то можете використовувати пулінг потоків, підключивши до проекту модуль ISAPIThreadPool.pas. Якщо ви хочете запозичити ідеї для інших цілей, ознайомтеся з вмістом цього модуля.

Асиметричні потоки (asymmetric threads) – це потоки, вирішальні різні задачі і, як правило, не розділяючі сумісні ресурси. Необхідність в асиметричних потоках виникає:

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

· коли потрібно обробляти асинхронне введення / висновок з використанням різних пристроїв (Сом-порту, звукової карти, принтера і т. п.);

· коли ви хочете створити декілька вікон і одночасно обробляти введення в них.

Коли ми говоримо «програма» (application), то звичайно маємо на увазі поняття, в термінології операційної системи що позначається як «процес». Процес складається з віртуальної пам'яті, виконуваного коду, потоків і даних. Процес може містити багато потоків, але обов'язково містить, принаймні, один. Потік, як правило, має «у власності» мінімум ресурсів; він залежить від п

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике и программированию Робота з « потоками » в середовищі Delphi Працюючи з Delphi, потрібно мати на увазі: цей чудовий продукт не тільки спрощує
Оценок: 1005 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru