Ключевое слово volatile в Java
Синхронизация в Java возможна с помощью ключевых слов Java synchronized и volatile, а также с помощью блокировок. В Java не может быть synchronized переменной. Использование ключевого слова synchronized с переменной недопустимо и приведет к ошибке компиляции. Вместо использования synchronized переменной в Java вы можете использовать volatile переменную, которая будет указывать потокам JVM читать значение volatile переменной из основной памяти и не кэшировать его локально. Если переменная не используется совместно несколькими потоками, тогда нет необходимости использовать ключевое слово volatile. Пример использования volatile: public class Singleton { private static volatile Singleton instance; public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) instance = new Singleton(); } } return instance; } } Мы лениво созда...