Блокировки чтения и записи потоков Java

Блокировки чтения и записи потоков JavaПакет java.util.concurrent.locks определяет два класса блокировок — ReentrantLock и ReentrantReadWriteLock. Последний удобен, когда есть много потоков, читающих структуру данных, и поменьше потоков — модифицирующих ее. В такой ситуации имеет смысл разрешить разделенный доступ читателям. Конечно, поток-писатель должен по-прежнему иметь исключительный доступ.

Купить программное обеспечение Москва недорого. Вот вам ссылка где сможете заказать любую программу. Все по самым доступным ценам.

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

  1. Сконструировать объект ReentrantReadWriteLock:private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
  2. Извлечь блокировки чтения и записи:
    private Lock readLock = rwl.readLock();
    private Lock writeLock = rwl.writeLock();
  3. Использовать блокировку чтения для всех читателей:
    public double getTotalBalance()
    {
    readLock.lock();
    try(…)
    finally(readLock.unlock();}
    }
  4. Использовать блокировку записи для всех, кто изменяет данные:public void transfer(…)
    {
    writeLock.lock();
    try(…)
    finally { writeLock.unlock(); }
    }