Многопоточность (Концепт)
Java библиотека1. Введение
При решении любой технической задачи всегда возникает один вопрос: “Как можно выполнить задачу быстрее и эффективней?”. На примере логистической задачи на железной дороге будет проведен сравнительный анализ однопоточной и многопоточной сред.
2. Однопоточная среда
Железные дороги всегда были хорошим способом доставки грузов, поскольку полоса движения независима от основных узлов движения и скорость поездных составов (далее - состав) довольно велика.
Типичная задача для состава - перевозка грузов из точки А в точку В и штатное обслуживание между рейсами.
Известо, что компания обладает одноколейной полосой и составом грузоподъемностью 2.25 тонны. Полоса позволяет одновременно двигаться только одному составу, потому компания не имеет планов для закупки нового состава.
Состав проходит дистанцию из точки А в точку В за 3.5 часа и тратит еще 30 минут на разгрузку и загрузку, по 15 минут на каждой из сторон.
Итого, в рамках 8-часового рабочего дня компания осуществляет две доставки груза, что выражается в:
Начало рабочего дня: 08:00
Конец рабочего дня: 16:00
Количество колей на полосе: 1 ед.
Количество составов: 1 ед.
Время на передвижение: 7 ч.
Время на погрузку\разгрузку: 1 ч.
Затраченное время на одну сторону: 4 ч.
Общее затраченное время: 8 ч.
Доставлено груза: 4.5 т.
Спустя некоторое время, компания принимает решение о покупке дополнительного состава для увеличения количества доставленного груза.
Ожидаемые улучшения:
Количество колей на полосе: 1 ед.
Количество составов: 2 ед.
Время на передвижение: 7 ч.
Время на погрузку\разгрузку: 1 ч.
Общее время: 8 ч.
Доставлено груза: 9 т.
На практике выясняется, что несмотря на закупку нового состава полоса остается одноколейной. Как следствие, подъезд к загрузочно-разгрузочному блоку одновременно может осуществить только один состав, что приводит к задержке отправления второго на 15 минут.
Важно обратить внимание, что составы могут передвигаться только один за другим в силу обстоятельств одноколейной полосы.
Часовой путь из точки А в точку В

Часовой путь из точки В в точку А

Просматривается, что второй состав выходит с опозданием и свой последний рейс завершает на 15 минут позже закрытия компании.
Таким образом, разгрузка последнего груза переносится на следующий день, что в целом снижает ожидаемую дневную норму перевозок.
Актуальный результат:
Количество колей на полосе: 1 ед.
Количество составов: 2 ед.
Время на передвижение: 7 ч.
Время на погрузку\разгрузку: 45 мин.
Общее время: 7 ч. 45 мин.
Доставлено груза: 6.75 т.
3. Многопоточная среда
Совершенно очевидно, что движение составов друг за другом снижает возможности компании по доставке грузов. Текущая ситуация является классическим примером однопоточной средой, где каждая типовая задача выполняется последовательно и начинает выполняться после того, как впереди идущая задача завершит свое выполнение или уступит свое время для выполнения.
Решение для текущей проблемы может быть многопоточная среда, где типовые задачи выполняются одновременно, иначе говоря параллельно друг другу.
В связи с этим, логистическая компания принимает решение перейти с одноколейной полосы на двухколейную. Ожидается, что такое решение позволит составам загружаться и разгружаться независимо и беспрепятственно для друг друга передвигаться в своем направлении.
Ожидаемые улучшения:
Количество колей на полосе: 2 ед.
Количество составов: 2 ед.
Время на передвижение: 7 ч.
Время на погрузку\разгрузку: 1 ч.
Общее время: 8 ч.
Доставлено груза: 9 т.

Заключение
Многопоточная среда позволяет добиться большей производительности и эффективности по сравнению с однопоточной, поскольку задачи могут выполняться и использовать все предоставленные ресурсы одновременно и независимо.