com.trackstudio.kernel.lock
Class LockManager

java.lang.Object
  extended by com.trackstudio.kernel.lock.LockManager

public class LockManager
extends java.lang.Object

Класс для управления блокировками
правила выставления локов - см #18908 Там вообще с локами алгоритм расстановки был такой (должны выполнятся все условия): 1) Ставим в kernel 2) Ставим на все public методы (на private не нужно т.к. их вызывают другие public) 3) Не ставим лок на часть метода, только целиком. Если очень нужно на часть - делаем 2 метода.

Категорически нельзя в одном методе использовать и локи, и synchronized. Еще нельзя ставить лок и вызывать synchronized-методы. Для этого мы делаем так: в kernel используем только локи, во всем остальном - только synchronized. При этом kernel ко всему остальному не лезет и synch-методы не вызывает


Field Summary
protected  java.util.List lockList
          Список локов
 
Method Summary
 boolean acquireRead(java.lang.String src)
          лок на чтение
 boolean acquireWrite(java.lang.String src)
          лок на запись
static LockManager getInstance()
          Возвращает экземпляр текущего класса
 org.concurrent.ReentrantLock getLock()
          Возвращает лок
 void releaseRead(java.lang.String src)
          завершаем лок на чтение
 void releaseWrite(java.lang.String src)
          завершаем лок на запись
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lockList

protected java.util.List lockList
Список локов

Method Detail

getInstance

public static LockManager getInstance()
Возвращает экземпляр текущего класса

Returns:
экземпляр класса

getLock

public org.concurrent.ReentrantLock getLock()
Возвращает лок

Returns:
лок

acquireRead

public boolean acquireRead(java.lang.String src)
                    throws GranException
лок на чтение

Parameters:
src - что лочим
Returns:
результат лока
Throws:
GranException - при необходимости

releaseRead

public void releaseRead(java.lang.String src)
завершаем лок на чтение

Parameters:
src - что лочим

acquireWrite

public boolean acquireWrite(java.lang.String src)
                     throws GranException
лок на запись

Parameters:
src - что лочим
Returns:
результат лока
Throws:
GranException - при необходимости

releaseWrite

public void releaseWrite(java.lang.String src)
                  throws GranException
завершаем лок на запись

Parameters:
src - что лочим
Throws:
GranException - при необходимости


Copyright © 2002-2009 TrackStudio, Ltd. All Rights Reserved.