Ключевое слово synchronized Java

Ключевое слово synchronized JavaВ ранних статьях блога вы видели, как надо использовать объекты Lock и Condition. Прежде чем двинуться дальше, подведем итоги, перечислив ключевые моменты, касающиеся блокировок и условий.

  • Блокировка защищает сегмент кода, позволяя только одному потоку в единицу времени выполнять этот код.
  • Блокировка управляет потоками, которые пытаются войти в защищенный сегмент кода.
  • Каждый объект условия управляет потоками, вошедшими в защищенный сегмент кода, но которые пока не в состоянии выполнять работу.

Интерфейсы Lock и Condition были добавлены в Java SE 5.0, чтобы предоставить программистам высокую степень контроля блокировок. Однако в большинстве ситуации вам не понадобится такой контроль, и вы можете использовать механизм, построенный на средствах языка Java. Читать

Работоспособные потоки Java

Работоспособные потоки JavaКак только вы вызовете метод start(), поток оказывается в работоспособном(runnable) состоянии. Работоспособный поток может в данный момент выполняться, а может и нет. Зависит от операционной системы — будет ли выделено потоку время на выполнение. Спецификация Java, однако не назысает это отдельным состоянием. Работающий поток также находится в «работоспособном» состоянии.

Если поток запущен, он не обязательно постоянно продолжает выполняться. Фактически, даже желательно, чтобы выполняющийся поток периодически приостанавливался, давая возможность поработать другим потокам. Детали планирования выполнения потоков зависит от служб, предоставляемых операционной системой. Читать

Концепция монитора

Концепция монитораБлокировки и условия — мощный инструмент синхронизации потоков, но они не слишком объектно-ориентированы. В течении многих лет исследователи ищут способы обеспечения безопасности многопоточности, дабы избавить программистов от необходимости думать о явных блокировках.

Одно из наиболее успешных решений — концепция монитора, которая была впервые предложена Петром Бринчем Хансеном(Per Brinch Hansen) и Тони Хоаром(Tony Hoare) в 70-х годах. В терминологии Java монитор обладает перечисленными ниже свойствами. Читать

Создание диалоговых окон в Java

Создание диалоговых окон в JavaКак вы наверное уже знаете, для использования предопределенных диалоговых окон применяется класс JOptionPane. Теперь мы опишем, как «вручную» создать собственное диалоговое окно.

На рис.1 показано типичное модальное диалоговое окно, содержащее сообщение. Подобное окно отображается на экране после того, как пользователь выбрал пункт меню About.

Для того чтобы реализовать такое окно, необходимо создать подкласс класса JDialog. По сути, это тот же процесс, которым мы воспользовались для создания главного окна приложения, расширяя класс JFrame. Читать