Лабораторная работа 4
Задание
Написать свой RSS-Reader, с фильтрами (include и exclude), пулом потоков (свой или Дмитрия Андреевича - быть готовым объяснить принцип работы), удобным интерфейсом, несколькими пользователями (имя пользователя - название файла xml-конфигурации или внутри файла конфигурации блок с атрибутом-именем) в разных табах.
Должна быть предусмотрена возможность как смотреть новости со всех rss-каналов одновременно, так и с каждого по отдельности. Количество rss-каналов - не меньше 5. У разных пользователей должны отличаться каналы хотя бы на 1. Каждый rss-канал считывается в отдельном потоке. Интерфейс не должен зависать при обновлении rss-канала. Предусмотреть механизм открытия новости в браузере.
Переключение пользователей и настройка конфигурации - через контекстное меню приложения или строку меню. См. лабораторную работу 2.
Структура xml-конфигурации (пример):
<root>
<user name="Natasha">
<count>5</count> // ограничение количества потоков
<channels> // каналы
<channel>http://tut.by/rss</channel>
<channel>http://onliner.by/rss</channel>
</channels>
<filters> // фильтры
<include method="or">
<item>IT</item>
<item>BSUIR</item>
</include>
<exclude method="and">
<item>Ruby</item>
</exclude>
</filters>
</user>
</root>
Контрольные вопросы
- Как работает пул потоков?
- Особенности формата RSS.
- Как работает синхронизация потоков в программе?