/* * Created on 2005-1-9 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */
/** * @author Michelangelo * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class Database {
/** * */ private static final int NAP_TIME=5; private int readerCount; private int writerCount; private boolean dbReading; private boolean dbWriting; public Database() { super(); readerCount=0; writerCount=0; dbReading=false; dbWriting=false; // TODO Auto-generated constrUCtor stub }
public static void napping(){ int sleepTime=(int)(NAP_TIME * Math.random()); try{ Thread.sleep(sleepTime*1000); } catch(Exception e){ e.printStackTrace(); } } public synchronized int startRead(){ while(writerCount>0){ try{ System.out.println("reader is waiting"); wait(); } catch(Exception e){ System.out.println(e.toString()); e.printStackTrace(); } } ++readerCount; if(readerCount==1){ dbReading=true;