Skip to content

Результат работы приложения, является обработанный(большой) файл с аннограмами. Приложение использует протокол TCP/IP для обмена задач между Генератором задач(сервером) и Исполнителями задач(клиентами).

Notifications You must be signed in to change notification settings

DimasBro0110/Big_File_Processor

Repository files navigation

Big_File_Processor

Результат работы приложения, является обработанный(большой) файл с аннограмами. Приложение использует протокол TCP/IP для обмена задач между Генератором задач(сервером) и Исполнителями задач(клиентами).

В данной реализации, запускается сервер, который генерирует задачи для потоков-обработчиков. Задача для обработчика - это строка, считанная из файла(файл читается построчно). Решенная задача, передаваемая обработчиком серверу - строка, разделенная "логическим" разделителем ":". Разделитель разделяет hashsum - значение, полученное из произведения всех букв в слове, и самого слова. Данные значения добавляются в Таблицу, где сортируются по ключу - hashsum. Таким образом мы получаем, что у каждого ключа, существует список слов-аннаграмм, что является решением поставленной задачи. Стоит отметить, что для запуска обработчиков(в данной реализации по два на процессор "int max = Environment.ProcessorCount * 2"), необходимо запускать экзешники. В качестве еще одного решения, можно запустить эти потоки в режиме "демона", тоесть освободить пользователя от необходимости запускать клиентоа вручную. Так же, при росте размера таблицы, в которой храняться аннаграммы, можно использовать для каждого списка в таблице, алгоритм сжатия.

About

Результат работы приложения, является обработанный(большой) файл с аннограмами. Приложение использует протокол TCP/IP для обмена задач между Генератором задач(сервером) и Исполнителями задач(клиентами).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages