Використання черги в програмуванні

Використання черги в програмуванні майже відповідає її ролі у звичайному житті. Черга практично завжди пов'язана з обслуговуванням запитів, у тих випадках, коли вони не можуть бути виконані миттєво. Черга підтримує також порядок обслуговування запитів.

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

У системі Windows робота віконних додатків заснована на повідомленнях, які посилають цим додаткам. Наприклад, бувають повідомлення про натискання на клавішу миші, про закриття вікна, про необхідність перемальовування області вікна, про вибір пункту меню й т.п. Кожна програма має чергу запитів. Коли програма одержує свій квант часу на виконання, вона вибирає черговий запит з початку черги й виконує його. Таким чином, робота віконного додатка полягає в послідовнім виконанні запитів з її черги. Черга підтримується операційною системою.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: