Class symantec.itools.db.beans.dbnav.model.builder.ThreadLimiter
All Packages  Class Hierarchy  This Package  Previous  Next  Index
  Class symantec.itools.db.beans.dbnav.model.builder.ThreadLimiter
Object
   |
   +----symantec.itools.db.beans.dbnav.model.builder.ThreadLimiter
  -  public class ThreadLimiter
  
-  extends Object
  
This re-usable class enforces a restricted number of clients simultaneously
  using some unspecified resource.
  Say if you had an open-ended (unlimited) recursive mechanism spawning
  threads, you would want to ensure that only so many threads in total are
  active at any one time. Class ThreadLimiter can enforce such a limitation
  by handing out "tickets" (or licenses) to clients, so that they can "proceed"
  with whatever they wish. Entities applying for a ticket when no more tickets
  are available will block until a ticket is released by another entity.
  -  Version:
  
 -  1.0 06/16/98
  
 -  Author:
  
 -  Hristo Tonev
 
  
  -  
	getInstance()
   -    
 -  
	getTicket()
   -   Apply for a ticket.
  
 -  
	returnTicket()
   -   A client has done whatever it needed to do and wants to give up its
 ticket.
 
  
getInstance
public static synchronized symantec.itools.db.beans.dbnav.model.builder.ThreadLimiter getInstance()
getTicket
public synchronized int getTicket()
  -  Apply for a ticket.
 If tickets are still available, give client a ticket and record its
 issue.
 If all tickets are currently issued, block (put client thread to sleep)
 until a ticket becomes available again (and gets recycled).
 Tickets can only be returned via the returnTicket() method.
  
 
 
returnTicket
public synchronized void returnTicket()
  -  A client has done whatever it needed to do and wants to give up its
 ticket. Take ticket back and recycle it for future clients. Wake up
 a random thread waiting to get a ticket of its own.
  
 
 
All Packages  Class Hierarchy  This Package  Previous  Next  Index