Все задания и вспомогательные файлы можно скачать в . Если в заданиях раздела есть задания с буквами (например, 5.2a), то лучше выполнить сначала задания без букв, а затем с буквами. Задания с буквами, как правило, немного сложнее заданий без букв и развивают или усложняют идею в соответствующем задании без буквы.
Например, в разделе есть задания 5.1, 5.2, 5.2a, 5.2b, 5.3, 5.3a. Сначала лучше выполнить задания 5.1, 5.2, 5.3, а затем 5.2a, 5.2b, 5.3a
Если задания с буквами получается сделать сразу, лучше делать их по порядку.
Переделать задание 19.4a таким образом, чтобы проверка доступности устройств выполнялась не последовательно, а параллельно.
Для этого, можно взять за основу функцию check_ip_addresses из задания 11.3. Функцию надо переделать таким образом, чтобы проверка IP-адресов выполнялась параллельно в разных потоках.
Переделать функцию из задания 20.1 таким образом, чтобы она позволяла контролировать количество параллельных проверок IP.
Для этого, необходимо добавить новый параметр limit, со значением по умолчанию - 2.
Функция должна проверять адреса из списка таким образом, чтобы в любой момент времени максимальное количество параллельных проверок было равным limit.
Создать функцию send_commands_threads, которая запускает функцию send_commands из задания 19.3 на разных устройствах в параллельных потоках.
Параметры функции send_commands_threads надо определить самостоятельно. Должна быть возможность передавать параметры show, config, filename функции send_commands.
Функция send_commands_threads возвращает словарь с результатами выполнения команд на устройствах:
Переделать функцию send_commands_threads из задания 20.2 таким образом, чтобы с помощью аргумента limit, можно было указывать сколько подключений будут выполняться параллельно.
По умолчанию, значение аргумента должно быть 2.