- PVSM.RU - https://www.pvsm.ru -

Как сделать программу нетерпеливой?

Как сделать программу нетерпеливой?

Программы, которые были написаны в прошлых лекциях курса «Сетевое программирование в UNIX», обладали бесконечным запасом терпения, то есть беспрекословно ждали, пока не поступят данные для обработки. В новой лекции вы узнаете, как ограничить терпение программы определенными временными рамками.

Автор курса Александр Патраков [1] рассказывает, как обрабатывать в сетевой программе события, привязанные ко времени, например, таймауты на прием и передачу данных. В случае с блокирующими сокетами все очень просто, с неблокирующими – чуть сложнее.

В случае с неблокирующими сокетами для эффективного вычисления значения таймаута, которое надо передать в функцию select() или ее аналоги, можно применить структуру данных, которая называется «двоичная куча». Другое ее название — «пирамида».

Чтобы узнать, как она работает, смотрите видео.

Слайды доступны здесь [2]

Предыдущие лекции:
1. Курс для тех, кто не боится UNIX и C [3]
2. Каждому клиенту по процессу [4]
3. Реализуем протокол или как работают астрологи [5]
4. О том, как читать до конца [6]
5. Программы в автоматном стиле — трудности перевода [7]
6. Как делать несколько дел одновременно и в то же время по очереди? [8]
7. Эффективное чтение [9]

Автор: AdMonster


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/9618

Ссылки в тексте:

[1] Александр Патраков: http://patrakov.blogspot.com/

[2] здесь: https://docs.google.com/present/view?id=0AYhk_voiXy4JZGZzZGJ6bXJfMTM1aHJmeHp3Z3Y

[3] Курс для тех, кто не боится UNIX и C: http://habrahabr.ru/company/ideco/blog/138322/

[4] Каждому клиенту по процессу: http://habrahabr.ru/company/ideco/blog/138706/

[5] Реализуем протокол или как работают астрологи: http://habrahabr.ru/company/ideco/blog/139926/

[6] О том, как читать до конца: http://habrahabr.ru/company/ideco/blog/143701/

[7] Программы в автоматном стиле — трудности перевода: http://habrahabr.ru/company/ideco/blog/143886/

[8] Как делать несколько дел одновременно и в то же время по очереди?: http://habrahabr.ru/company/ideco/blog/144302/

[9] Эффективное чтение: http://habrahabr.ru/company/ideco/blog/145012/