Вы когда-нибудь сидели в своей машине или в автобусе на красный свет, когда нет перекрестка?Большая трата времени, верно?Замок похож на идеальный светофор.Он всегда зеленый, за исключением случаев, когда на перекрестке есть движение.
Ваш вопрос: «Я слишком много времени провожу в пробках в ожидании на красный свет. Должен ли я просто включить красный свет? Или даже лучше, я должен удалитьгорит полностью и просто позволяет каждому проехать перекресток на скоростях шоссе без каких-либо средств управления перекрестком? "
Если у вас проблемы с производительностью с замками, то удаление замков - это последняя вещь, которую выследует сделать. Вы ждете на этом красном сигнале именно потому, что на перекрестке происходит перекрестное движение.Замки являются чрезвычайно быстрыми , если они не оспариваются.
Вы не можете устранить свет, не устранив сначала перекрестное движение.Поэтому наилучшим решением является устранение перекрестного трафика .Если замок никогда не оспаривается, вы никогда не будете его ждать.Выясните, почему перекресток тратит так много времени на перекрестке;не убирай свет и надейся, что столкновений нет.Будет.
Если вы не можете этого сделать, тогда добавление более мелкозернистых блокировок иногда помогает .То есть, может быть, у вас есть все дороги в городе, сходящиеся на одном перекрестке.Возможно, вы можете разделить это на два пересечения, чтобы код мог проходить через два разных пересечения одновременно.
Обратите внимание, что делает автомобили быстрее (получая более быстрый процессор) или сокращение дорог (устранение длины пути кода) часто усугубляет проблему в многопоточных сценариях.Так же, как в реальной жизни;если проблема в тупике, то покупка более быстрых автомобилей и езда по более коротким дорогам приведет их к пробке быстрее, но не быстрее.