Работа в потоке и спин-блокировки

Когда что-то разрабатываешь, кодишь и вошел в в поток, то могут возникать ситуации, что установка какого-то ПО или работа чего-то занимает 3-5 минут…. Нужно подождать.

И тут появляются мысли, что в это время можно сделать что-то полезное, ну или хотя бы бесполезное. Не смотреть же тупо в монитор.
А потом, когда длинная операция завершится, можно вернуться к основной работе.

И вот тут-то и получается самое интересное. Когда начинаешь возвращаться к работе после паузы, то ты уже не в потоке…. и нужно потратить еще минут 15, точное время зависит от человека.

И что-же тогда делать? Получается, что все таки наиболее эффективно…. – это тупо смотреть в монитор…

Очень четко прослеживается аналогия c многопоточным программированием. Если потоку нужно долго ждать, то он засыпает, если не долго – то более эффективно использовать спинблокировки – тупо убивать процессорное время, потому как переключение контекста гораздо дороже, то же самое, что втыкать в монитор.

Как всегда в разработке ПО сложно измерять, что производительнее. Могу только по себе сказать, что когда работа происходит в потоке, то и настроение хорошее, и виден прогресс, когда пытаешься экономить минуты, то особо больше сделать не получается, но после окончания работы чувствую себя выжатым, как лимон.

В завершение хочу привести пример, который недавно наблюдал и, в отличии от разработки ПО, в нем можно все измерить.
В супермаркетах на кассах обычно продавцы долго ждут, пока покупатели ищут деньги. Так вот в одном маркете я увидел, как поставили ПО, которое позволяло начинать обслуживать следующего покупателя, пока предыдущий искал деньги.
Меня это очень поразило – как просто на ровном месте можно больше зарабатывать! … но через пару месяцев в том же маркете на кассах продавцы опять спокойно ждали, пока покупатели ищут деньги. Я не знаю точно, почему отказались от параллельной обработки. Возможно, не смотря на отсутствие простоя, сама скорость уменьшилась. Возможно повысилось количество ошибок, обработка которых требует времени. … но в итоге очевидно – раз отказались от “частого переключения потоков”, значит это того стоит, не смотря на появившийся простой.

Share

2 thoughts on “Работа в потоке и спин-блокировки

  1. AntonK

    Я тож замечал, что в некоторых супермаркетах начинают пробивать товар след.покупателя, пока предыдущий расплачивается…
    Если же потом от этого отказались, то или не было эффекта, или проводили какое-то исследование, или у забыли соответствующим образом замотивировать продавцов, поэтому последние и не пользуются этой фичей – зачем напрягаться, если оклад фиксированный? 🙂

    Reply
  2. sergtk

    у продавцов как правило зп привязана к продажам, но как конкретно это в супермаркетах – я не в курсе.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *