FastPass в основном реализует неблокирующих посетителей с какой-то очередью приоритетов. Они не блокируют, они не спят, они тратят деньги. Это работает, потому что Джон использует его в 11:00 утра, Джо использует его в 11:15 утра (или 11:01 утра). Теперь, если бы у всех был быстрый пропуск, регулярная линия была бы намного быстрее, в то время как большинство посетителей тратили больше денег на еду и подарки. Для Диснея это желаемый эффект, в некоторой степени.
Пропуск делает некоторые предположения и имеет некоторые ограничения. Предполагается, что держатели fastpass составляют меньшинство ... если это изменится, им придется заставить проход работать на нескольких поездках, или держатели fastpass потратят деньги, увидев очень мало людей в регулярной линии ... контрпродуктивно. Поскольку поддерживается только одна поездка, ни один из владельцев Fastpass не будет запрашивать одну и ту же поездку одновременно.
Теперь, учитывая, что Джо может покинуть парк до того, как займет свою очередь, вам придётся придумать какой-нибудь «фьютекс» посетителя, чтобы сделать систему эффективной. Если Джо уйдет и Джон приедет рано, Джон сможет покататься. Более того, Джон удивлялся, почему его быстрый пас не предупредил его, что он может ехать на н минут раньше. Вот где действительно весело, что, если Джо уйдет, чтобы просто взять солнцезащитный крем из машины, и вернется? В конце концов, его очередь находится в двух часах езды, если только 200 человек до него не покинули парк, когда он блокировал (получая солнцезащитный крем), задачу, которую нельзя прервать. Таким образом, в этом случае мы помещаем Джо в какой-то режим сна диска, или сна, который не может быть прерван или убит. Он не получает никаких сигналов, он ничего не опрашивает, он вне парка.
Это теория, которая стимулирует практическое программирование без блокировок. Это так же интересно, как проблема столовых философов , на самом деле больше.
Что касается Диснея ... это не ошибка, это особенность, люди менее склонны покидать парк, но более склонны тратить деньги.