Для чего предназначено ключевое слово synchronized? В какой ситуации следует его использовать?

Синхронизация - это процесс сериализации доступа к критическим секциям кода. Мы будем использовать это ключевое слово тогда, когда мы ожидаем, что множество потоков будут доступаться или модифицировать определенные данные. Для понимания синхронизации нам необходимо взглянуть на манеру выполнения потока
Потоки могут выполняться в такой манере, что пути выполнения их могут быть абсолютно независимы друг от друга. Например, один поток может выполнять задачу печати, пока другой перерисовывает окно. Вот тогда потоки требуют синхронизации, действия по сериализации доступа к критическим секциям кода, в разные моменты выполнения программы. Например, скажем, два потока нуждаются в отсылке пакетов с данными через одно и то же сетевое соединение. Каждый поток должен иметь возможность посылать свой пакет перед тем, как другой поток начнет отсылать свой пакет и наоборот. Этот сценарий требует, чтобы каждый поток синхронизировал свой доступ к коду, который в действительности производит отсылку пакетов с данными.
Если Вы чувствуете, что метод является очень критичным для бизнеса и нуждается в блокировке, следует использовать синхронизацию.
Материалы, которые могут вас заинтересовать
- Вопрос: Восходящее преобразование и generic
- Где и зачем можно использовать private конструктор?
- Что такое singleton класс?
- Для чего предназначен оператор instanceof?
- В чем разница между Java Bean и Java Class?
- В чем разница между XML парсерами SAX и DOM?
- В чем разница меду исключением и ошибкой (exception and error)?
- Для чего используется класс Class?
- Что происходит, если сообщение не отлавливается?







А к сему именно применяется synchronized? К методам?
Отправить комментарий