Skip to content

pashaalex/MultiThreadTestTask

Repository files navigation

MultiThreadTestTask

Решение задачи: Нужно написать заготовку программы на языке C#.

Есть класс ParallelImageProcessor и у этого класса есть публичный метод List ProcessImage(Bitmap image), который вызывается из множества потоков. Методу на вход передаётся изображение, а на выходе он возвращает набор дескрипторов List<byte[]>. Один дескриптор - это byte[]. Этот метод внутри себя вызывает обработчики изображений. Есть два типа обработчиков - CPUProcessor, который на вход принимает одно изображение обрабатывает его на CPU в одном потоке и GPUProcessor, который на вход может принять массив изображений и обрабатывает их эффективно только если их много (например, больше заданной константы GPUThreshold = 10). Экземпляров класса CPUProcessor может быть несколько (в зависимости от настроек), а GPUProcessor всего один. Требуется написать внутреннюю логику метода ProcessImage. Он должен обрабатывать изображения на CPUProcessor до тех пор, пока размер внутренней очереди не перевалит за GPUThreshold и после этого вызвать GPUProcessor. Потоки, которые вызывают ProcessImage остаются в ожидании до завершения обработки изображения. Т.е. вызов ProcessImage синхронный

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages