Этот пример подводит нас к пятому правилу: чтобы избежать синхронизации, нужно удерживать блокировки как можно более короткое время, желательно только на время, необходимое для доступа к общему ресурсу, а не в течение выполнения всей операции. Если вы подумали, что правило «удерживать блокировки как можно более короткое время, а не в течение выполнения всей операции» противоречит четвертому правилу «удерживать блокировки в течение всей операции», то вы совершенно правы. Если блокировки слишком короткие, есть риск попасть в состояние гонки, а если блокировки слишком долгие, то возникает проблема синхронизации.