лимитированных ресурсах (или типа того)
у меня есть набор "задач"/"тасок", каждая потребляет сколько-то памяти и выполняется сколько-то времени (приблизительно можно предсказать).
все задачи уложены по порядку их поступления в некую очередь.
есть бесконечный цикл, который достает следующую задачу из очереди и передает ее на выполнение.
выполнение идет в N потоков (сейчас 4, то есть максимум 4 одновременных задачи на выполнении).
и вот тут есть нюанс: если задача 1 съела все доступные ресурсы, то задачи 2,3,4 будут ждать/висеть пока задача 1 не закончит.
вопрос: как оптимизировать выполнение задач, чтобы суммарно простой был наименьший?
в каком плане задача съела ресурсы, почему другие будут висетЬ? Она заняла тредпул весь?
Есть раздел математики "системы массового обуслуживания". Возможно, вашу задачу можно решить аналитически, посмотрите
например память на видеокарте ограничена физически - мне нужно ждать пока предыдущая задача закончит вычисления
хм, ну тут нужна какая то доп информация про задачи видимо и выбирать такие которые могут исполнится сейчас, условно
спасибо, что-то сложное... надо гуглить
Обсуждают сегодня