Стипендия и многопоточность

Oct 06, 2010 11:16

На днях беседовал со своим младшим братом nerator , который сейчас учится в ИТМО. Речь зашла о стипендии, и я поинтересовался, как у них выстроен процесс её получения. Выяснилось, что пока банковских карточек нет, в один день где-то в бухгалтерии открывается окошко, и выстраивается огромная очередь из студентов, желающих получить стипендию. Я вспомнил, что когда я учился в университете, в эту очередь могли встать только старосты групп, получающие стипендию сразу на всю группу и ответственные за её получение каждым студентом группы.

И тут меня осенило, что в многопоточном программировании такой подход называется "комбинирующее дерево" (combining tree) - он позволяет резко увеличить пропускную способность (throughput) при большой нагрузке. И в самом деле, вместо того, чтобы отстаивать огромную очередь, студенту было надо только подойти к своему старосте и, возможно, отстоять небольщую очередь в случае, если хочется получить стипендию одним из первых. Конечно, в этом случае страдало latency - необходимо было дождаться, пока староста вернётся из бухгалтерии, а также была возможность уйти в backlog - переждать, пока первые нетерпеливые студенты получат у старосты свою стипендию, но в конечном результате процесс получения стипендии занимал полминуты и не нужно были никуда ходить - получить деньги и расписаться в ведомости.

программирование, жизнь

Previous post Next post
Up