Дизайн додатки з потоками в CBuilder

Найскладніша частина роботи з потоками – визначення того, чи дійсно вони потрібні у вашому додатку Немає жодних чітких правил, коли їх варто використовувати, але деякі програми за самою своєю суті добре підходять під потоковий дизайн

Перший випадок, коли варто використовувати потоки, – фонова обробка Перевірка послідовних чи паралельних портів, відстеження файлової активності, робота з журналом подій під час простою – речі, які будуть чудово працювати у вигляді потоку Якщо дії ні від чого не залежать, як, наприклад, обробка часу простою, то ви

часто можете просто «загорнути» код циклу обробки часу простою в потік

Ще один підходящий для потоків випадок – коли вам потрібно кілька дій, які працюють дискретно, здійснювати одночасно, наприклад стартовий код вашого додатку або код ініціалізації, який повинен виконуватися перед тим, як користувач може почати що-небудь робити Зазвичай ваш підхід полягає у запуску графічного інтерфейсу (форми) користувача, в той час як фоновий потік налаштовує систему на роботу з даною формою Завантаження інформації про проект, поки форма відображається, а також розбір даних про клас в броузері обєктів (як це відбувається в Visual C + +) є хорошими прикладами даного типу застосувань потоків

Останній приклад програми, що використовує потоки, застосовується тоді, коли вам потрібно, щоб користувач запустив якийсь процес, а ви б відображали результати, в той же час дозволяючи користувачеві робити якусь іншу роботу Уявіть, наприклад, що користувачеві потрібно зєднатися з віддаленою базою даних і отримати набір записів з цієї бази Користувач міг би задати критерій для пошуку і потім запросити всі записи, які підходять під нього Під час пошуку, як і в нашому прикладі пошуку файлів, ви могли б дозволити користувачеві детально переглядати записи, навіть у процесі їх отримання з сервера Це дозволить вашому додатку і користувачеві здійснювати паралельну роботу

Переваг у потоків багато Ви можете зробити так, що кожна незалежна частина коду буде здійснювати свою роботу, зовсім не турбуючись про інших частинах Наприклад, код, керуючої візуальними елементами, може спокійно вважати, що у нього будуть потрібні дані в той момент, коли вони будуть потрібні (так звана система «just-in-time data retrieval», отримання даних вчасно), замість очікування процесу завантаження даних Потоки є хорошим способом відокремлювати код, відповідальний за отримання даних, який сильно привязаний до конкретного додатком, від коду графічного інтерфейсу, керуючого відображенням і маніпулюванням даними У цьому відношенні потоки добре вписуються в обєктно-орієнтований підхід

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

Перед тим як використовувати потоки, задайте собі кілька питань:

· Чи взаємодіє цей код з чим-небудь в системі Якщо даний код часто звертається до решти частин вашої програми, то це вельми погана кандидатура на використання в потоці

· Чи потрібен цим кодом доступ до даних, що знаходяться поза ним Якщо це так, то на роль потоку код явно не годиться Потокам потрібен повний контроль над даними, з якими вони працюють У той час як нормально мати потік, що завантажує записи в таблицю на екрані, потік, що виробляє пошук по записах, введеним користувачем, явно не є хорошою ідеєю Звичайно, у вас може бути своя точка зору на цей рахунок

· Чи справді мені потрібні потоки Не використовую я потоки тільки для того, щоб всі думали, що я класний програміст Багато програмістів ретельно використовують все нові технології, хоча найчастіше вони далеко не є кращим рішенням даної конкретної проблеми

На цьому я підводжу риску під використанням потоків в додатках CBuilder При грамотному використанні потоки можуть прискорити роботу програми, а також зробити його більш зрозумілим і дружнім до користувача У CBuilder є кілька дуже приємних налагоджувальних можливостей, спеціально створених для роботи з потоками (подивіться в довідковій системі), так що з важкої роботи розробка додатків з потоками перетворюється на одне задоволення

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*