/
savushkin
/
CubeTaskManager
Обзор
Документация
Войти
/
savushkin
/
CubeTaskManager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cube_tm2/main.cpp
83 строки
4 KB
Alexander Savushkin
feat: cube_tm_2 - 2025-10-23 17:58:06
23 окт 2025, 17:58
23 окт 2025, 17:58
02548f3
Код
Авторство
О чём код?
#include "task_scheduler.h" #include <iostream> #include <thread> #include <chrono> int main() { std::cout << "🚀 ЗАПУСК ДИСПЕТЧЕРА ЗАДАЧ С ПРОЦЕНТНОЙ СИСТЕМОЙ ПРИОРИТЕТОВ" << std::endl; std::cout << "=========================================================" << std::endl; // Создаем диспетчер с лимитом в 15 задач TaskScheduler scheduler(15); std::cout << "Максимальное количество задач: " << scheduler.getMaxTasks() << std::endl; // Создание icon данных unsigned char icon1[] = {0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A}; unsigned char icon2[] = {0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46}; unsigned char icon3[] = {0x42, 0x4D, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00}; // Создание задач с разными приоритетами std::cout << "\n=== СОЗДАНИЕ ЗАДАЧ С РАЗНЫМИ ПРИОРИТЕТАМИ ===" << std::endl; // Высокоприоритетные задачи (80-100%) auto system_monitor = std::make_shared<Task>(1, "Системный мониторинг", TaskType::SYSTEM, 95); auto antivirus = std::make_shared<Task>(2, "Антивирусная защита", TaskType::SYSTEM, 90, nullptr, icon1, sizeof(icon1)); // Средние приоритеты (40-70%) auto text_editor = std::make_shared<Task>(3, "Текстовый редактор", TaskType::USER, 70, nullptr, icon2, sizeof(icon2)); auto browser = std::make_shared<Task>(4, "Веб-браузер", TaskType::USER, 60); auto media_player = std::make_shared<Task>(5, "Медиа плеер", TaskType::USER, 50, nullptr, icon3, sizeof(icon3)); // Низкие приоритеты (10-30%) auto backup = std::make_shared<Task>(6, "Резервное копирование", TaskType::BACKGROUND, 30); auto sync = std::make_shared<Task>(7, "Синхронизация облака", TaskType::BACKGROUND, 20); auto temp_cleaner = std::make_shared<Task>(8, "Очистка временных файлов", TaskType::BACKGROUND, 10); // Добавляем задачи scheduler.addTask(system_monitor); scheduler.addTask(antivirus); scheduler.addTask(text_editor); scheduler.addTask(browser); scheduler.addTask(media_player); scheduler.addTask(backup); scheduler.addTask(sync); scheduler.addTask(temp_cleaner); // Добавляем еще несколько задач для демонстрации лимита for (int i = 9; i <= 20; i++) { auto task = std::make_shared<Task>(i, "Дополнительная задача " + std::to_string(i), TaskType::BACKGROUND, 15 + (i % 30)); scheduler.addTask(task); } // Демонстрация std::cout << "\n=== ЗАПУСК ЦИКЛИЧЕСКОГО ВЫПОЛНЕНИЯ ===" << std::endl; scheduler.startExecution(); // Работаем 20 секунд std::this_thread::sleep_for(std::chrono::seconds(20)); // Изменяем приоритеты во время работы std::cout << "\n=== ИЗМЕНЕНИЕ ПРИОРИТЕТОВ ВО ВРЕМЯ РАБОТЫ ===" << std::endl; scheduler.focus(8, 80); // Повышаем приоритет очистки временных файлов scheduler.focus("Синхронизация облака", 75); // Работаем еще 15 секунд std::this_thread::sleep_for(std::chrono::seconds(15)); // Останавливаем выполнение scheduler.stopExecution(); // Финальная статистика std::cout << "\n=== ФИНАЛЬНАЯ СТАТИСТИКА ===" << std::endl; scheduler.displayAllTasks(); std::cout << "\n=============================================" << std::endl; std::cout << "ДИСПЕТЧЕР ЗАДАЧ ЗАВЕРШИЛ РАБОТУ" << std::endl; std::cout << "=============================================" << std::endl; return 0; }