Огляд скриптовых мов - Python
Приклади збереження даних Приклади збереження данихУ порівнянні з pickle або YAML для ініціалізації роботи з ZODB потрібно написати на парі рядків програмного коду більше, але як тільки сховище...
Контактні дані Київ, Мясницкая вул., 35
Телефон: +38 (044) 997 - 93 - 19
Факс: +38 (044) 999 - 99 - 91
Модуль Processing
У нашій програмі криється одна малопомітна хитрість, що охороняє програму від влучення в пастку. Зверніть увагу на виклик методу setDaemon(True). Якщо цього не зробити перед викликом методу start потоку, програма зависне на невизначений строк. Причина практично непомітна на перший погляд і укладається в тім, що програма може завершити свою роботу, тільки якщо потоки виконуються в режимі демонів.

Ви могли помітити, що у функції pinger використовується нескінченний цикл. Оскільки потік, що викликав таку функцію, ніколи сам не завершиться, нам довелося оголосити їхніми потоками-демонами. Щоб переконатися в справедливості вищесказаного, просто закоментуйте рядок worker. setDaemon(True) і запустите програму. Помітимо лише, що без виклику цього методу програма буде крутиться вхолосту невиразно тривалий час.

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

Кожний з них має свою принадність, але разом вони створюють особливий смак. Щоб краще зрозуміти принципи використання потоків і черг, нам потрібно зробити ще один крок уперед і додати в наш приклад ще одну групу потоків і ще одну чергу. У першому прикладі ми опитували за допомогою утиліти ping список IP-Адрес, які витягали із черги. У наступному прикладі ми змусимо першу групу потоків поміщати IP-Адреси, від яких був отриманий відповідь, у другу чергу

Після цього друга група потоків буде витягати IP-Адреси із другої черги, провадити опитування за допомогою утиліти arping і повертати IP-Адреси разом з Мас-Адресами. Для реалізації цього рішення ми лише небагато розширили попередній приклад, додавши в нього ще одну групу потоків і ще одну чергу. Це досить важливий прийом, щоб помістити його у свій арсенал, тому що модуль queue робить використання потоків більше простим і більше безпечною справою. Можна навіть сказати, що цей прийом ставиться до розряду обов'язкових кприменению.

Обробка подій у потоці: Ця книга призначена для системних адміністраторів, тому давайте застосуємо описану вище методику для рішення більше практичного завдання. У цьому прикладі ми візьмемо на озброєння прийом з відкладеним запуском і об'єднаємо його із циклом очікування подій, у якому будемо перевіряти наявність розбіжностей в іменах файлів між двома каталогами.
Служба аутентификации Служба аутентификацииОдне із самих удалих визначень, з якими нам доводилося зіштовхуватися, приводиться у Википедии: "прикладний протокол, що дозволяє звертатися до служби каталогів, що працює поверх протоколу TCP/IP". Як приклад...
Веб додатка Веб додаткаОдне з поліпшень, яке можна було б внести в цей додаток, -це реалізувати сортування в порядку, зворотному поточний. Зробити це досить просто, але ми залишимо реалізацію цієї можливості читачам. Як ще одне поліпшення...
Запуск сценарію Запуск сценаріюЦе в точності відповідає нашим очікуванням. Тепер спочатку спробуємо запустити сценарій, що додає новий запис, а потім знову запустимо сценарій, що витягає дані. Цей приклад ідентичний попередньому прикладу, де використовувався метод store,...
Створення звітів Створення звітівКрім того, ми могли б розширити цей сценарій і відшукувати запису з обсягом використання 80 відсотків, 70 відсотків і видавати попередження по досягненні цих рівнів. Такий сценарій легко можна було б об'єднати, наприклад, с...
 
(c) Copyright