Реализовать пул потоков на Java

Отменен
Заказ
3278753
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
5 Июн 2020 в 23:55
Цена
5 000 ₽
Блокировка
15 дней
Размещен
30 Мая 2020 в 13:17
Просмотров
85
Описание работы
  1. Пул потоков 
  2. Реализовать объект ThreadPool, реализующий паттерн «пул потоков» с поддержкой continuation и work stealing (наподобие https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadpool?view=netframework-4.8 + https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskfactory?view=netframework-4.8).
  3. Пул потоков:
  4. - Число потоков задаётся константой в классе пула или параметром конструктора.
  5. - У каждого потока есть два состояния: ожидание задачи, выполнение задачи
  6. - Задача — вычисление некоторого значения, описывается в виде Func и инкапсулируется в объектах интерфейса IMyTask
  7. - Добавление задачи осуществляется с помощью нестатического метода класса пула Enqueue(IMyTask a).
  8. - При добавлении задачи, если в пуле есть ожидающий поток, то он должен приступить к ее исполнению. Иначе задача будет ожидать исполнения.
  9. - Если в какой-то момент у потока нет задачи, то он забирает задачу из очереди другого потока.
  10. - Класс должен быть унаследован от интерфейса IDisposable и корректно освобождать ресурсы при вызове метода Dispose().
  11. - Метод Dispose должен завершить работу потоков. Завершение работы коллаборативное, с использованием CancellationToken — уже запущенные задачи не прерываются, но новые задачи не принимаются на исполнение потоками из пула. Возможны два варианта решения --- дать всем задачам, которые уже попали в очередь, досчитаться, либо выбросить исключение во все ожидающие завершения задачи потоки
  12. IMyTask:
  13. - Свойство IsCompleted возвращает true, если задача выполнена
  14. - Свойство Result возвращает результат выполнения задачи
  15. - В случае, если соответствующая задаче функция завершилась с исключением, этот метод должен завершиться с исключением AggregateException, содержащим внутри себя исключение, вызвавшее проблему
  16. оставшиеся в лс
Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир