Java/keywords/synchronized

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Ключевое слово synchronized (синхронизированный) в ЯП Java предоставляет базовый механизм ЯП для безопасной синхронизации потоков.

ЯП Java предоставляет 2 базовые синхронизационные идиомы:

  1. синхронизированные методы
  2. синхронизированные шаги

Синхронизация методов

К методу добавляется ключевое слово synchronized в его декларации:

public class SynchronizedCounter {
	private int cntr = 0;
	public synchronized void incr() {
		cntr++;
	}
	public synchronized void decr() {
		cntr--;
	}
	public synchronized int val() {
		return cntr;
	}
}

Синхронизация шагов

Др. путь создать синхронизированный код заключ. в использ. синхронизированных шагов. Непохожий на синхронизированный метод, синхронизированный шаг к конкретному объекту (а замки синхронизации ставятся именно на объекты) обеспечивает внутренний замок:

public void addName(String name) {
	synchronized(this) {
		lastName = name;
		nameCount++;
	}
	nameList.add(name);
}

Шаблон:Java