Примеры вещей, которые используют опрос в этот день и возраст:
- Опрос почтовых клиентов на наличие новых сообщений (даже с IMAP).
- Опрос читателей RSS на предмет изменений в каналах.
- Поисковые системы опрашивают на предмет изменений в индексированных страницах.
- Пользователи StackOverflow опрашивают новые вопросы, нажимая «обновить»; -)
- Клиенты Bittorrent опрашивают трекер (и, я думаю, друг друга с DHT) на предмет изменений в рое.
- Спин-блокировки в многоядерных системах могут быть наиболее эффективной синхронизацией между ядрами в тех случаях, когда задержка слишком мала, чтобы было время запланировать другой поток на этом ядре, прежде чем другое ядро сделает то, что мы ожидаем .
Иногда просто нет никакого способа получить асинхронные уведомления: например, чтобы заменить RSS на push-систему, сервер должен знать обо всех, кто читает ленту новостей, и иметь возможность связаться с ними. Это список рассылки - именно это и было разработано в RSS. Отсюда тот факт, что большинство моих примеров - это сетевые приложения, где это, скорее всего, будет проблемой.
В других случаях опрос достаточно дешев, чтобы работать даже там, где есть асинхронное уведомление.
Для локального файла уведомление об изменениях, вероятно, будет лучшим вариантом в принципе. Например, вы можете (могли бы) предотвратить вращение диска, если вы будете его вечно тыкать, хотя с другой стороны ОС может кешироваться. И если вы опрашиваете каждую секунду файл, который изменяется только один раз в час, вы, возможно, излишне занимаете 0,001% (или что-то еще) от вычислительной мощности вашей машины. Это звучит крошечно, но что происходит, когда нужно опросить 100 000 файлов?
На практике, однако, издержки, вероятно, будут незначительными, в зависимости от того, что вы делаете, и это затруднит увлечение изменением кода, который в настоящее время работает. Лучше всего следить за конкретными проблемами, которые вызывает опрос в системе, которую вы хотите изменить, - если вы обнаружите такую, поднимите ее, а не пытайтесь выдвигать общий аргумент против всех опросов. Если вы не найдете ничего, то не сможете починить то, что не сломано ...