Не паникуйте при встрече | Здравствуйте, расскажите о своем понимании Synchronized? (один)

Java опрос
Не паникуйте при встрече | Здравствуйте, расскажите о своем понимании Synchronized? (один)

Это 30-й день моего участия в Gengwen Challenge. Чтобы узнать подробности о мероприятии, пожалуйста, проверьте:Обновить вызов.

В предыдущей статье мы потратили много времени на анализ и пониманиеvolatileКлючевые слова, заинтересованные студенты могут выйти и повернуть налево«Здравствуйте, расскажите, пожалуйста, о ключевом слове volatile? (полная статья)". законченныйvolatileКонечно, об этом нельзя говорить.synchronized, в параллельном программировании это ключевое слово всегда существовало на старшем уровне, мы привыкли называть еготяжелый замок, но сJava SE 1.6После версии,Javaкомандная параsynchronizedОн был тщательно оптимизирован, так что он может быть легким или тяжелым, соленым или сладким (ерунда). Следуйте моему видению, и давайте посмотрим, что это такое!

1. Душевная пытка

Прежде чем перейти к сути, это все еще клишированная пытка души, вы готовы?

  • чтоsynchronized, как он используется?
  • synchronizedДва способа реализовать блокировку объекта и как это работает?
  • говорить оsynchronizedЗаблокировать процесс эскалации?
  • synchronizedа такжеvolatileразница?

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

2. Базовое приложение

2.1 Метод блокировки

synchronizedСуществует три метода блокировки, включая модифицированные статические методы, модифицированные методы экземпляра и модифицированные блоки кода.Различные методы блокировки влияют на степень детализации управления блокировками и должны определяться в соответствии с фактической инженерной средой.

  • Статический метод действует на текущий объект класса, то есть гранулярность блокировки - это сам объект класса.Для входа в статический метод необходимо получить блокировку объекта класса.
  • Метод экземпляра действует на экземпляр текущего класса, то есть гранулярность блокировки — это экземпляр класса, и для входа в метод экземпляра необходимо получить блокировку экземпляра класса.
  • Кодовой блок действует на указанном объекте блокировки, то есть гранулярность блокировки является указанным объектом блокировки, а блокировка указанного объекта необходимо приобрести для ввода блока кода.

2.2 Применение кода

public class SyncExample {
    
    private static final Object LOCK = new Object();

    private static int i = 1;

    public synchronized static void increase1(){
        i++;
    }

    public synchronized void increase2(){
        i++;
    }

    public void increase3(){
        synchronized (LOCK){
            i++;
        }
    }
}

#increase1Метод представляет собой модифицированный статический метод;#increase2Метод представляет модифицированный метод экземпляра;#increase1Метод представляет собой оформленный блок кода.
Длина длинная, чтобы продолжить чтение, пожалуйста, нажмитеЗдравствуйте, расскажите о своем понимании Synchronized? (два)


Брат, не паникуй! Не стесняйтесь оставлять лайки, обсуждать и комментировать. Добро пожаловать в колонку интервьюНе паникуйте, когда сталкиваетесь | Параллельное программирование на Java, Не беспокойтесь о повышении зарплаты во время собеседования. Также добро пожаловать, чтобы следовать за мной, я должен быть лучшим человеком.