⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writerthread.java

📁 Reader Writer Problem to solve synchronization issues
💻 JAVA
字号:
public class WriterThread extends Thread {  private int tnum,wdata;		// thread number (greater than zero)  private Semaphore[] flags;  private Boolean[] continuous;  private Semaphore db;  private Data_base dtbs;    private CodeWin win;  private Gui abc;  private String a="INITIAL",d="DB",e="DBASE";  public WriterThread(int n, Semaphore[] s, Boolean[] b,Semaphore dbas,Data_base dtbase, CodeWin w, Gui ab) {    tnum = n;    flags = s;    continuous = b;    db=dbas;    dtbs=dtbase;    win = w;    abc = ab;  }    public void run() {        while (true) {/*---------------------------------------------------------*///	CREATE_DATA();      // If this thread's step flag is false, wait      if (continuous[0].booleanValue() == false)	flags[tnum].down();      // When we get here, the step flag is true; thus we can take      // (at least) one step        win.step(tnum-3);	wdata=dtbs.Createdata();	abc.dbase_data(tnum,wdata);      // If we are not in continuous[0] mode (flag 0),       // reset the step flag to false//      if (continuous[0].booleanValue() == false)//	flags[tnum].up();      /*---------------------------------------------------------*///	DOWN(DB);      if (continuous[0].booleanValue() == false)	flags[tnum].down();      abc.start_to_mutex_db(tnum);      win.step(tnum-3);      db.down();  	abc.db_lock(tnum); //     if (continuous[0].booleanValue() == false)//	flags[tnum].up();/*---------------------------------------------------------*///	WRITE_DB();            if (continuous[0].booleanValue() == false)	flags[tnum].down();	abc.db_to_dbase(tnum);      win.step(tnum-3);      dtbs.writedb(wdata);      abc.write_dbase(tnum, wdata); //     if (continuous[0].booleanValue() == false)//	flags[tnum].up();/*---------------------------------------------------------*///	UP(DB);      if (continuous[0].booleanValue() == false)	flags[tnum].down();      abc.dbase_to_db(tnum);      win.step(tnum-3);	abc.db_unlock(tnum);      db.up();	abc.db_to_start(tnum); //     if (continuous[0].booleanValue() == false)//	flags[tnum].up();      /*---------------------------------------------------------*/      if (continuous[0].booleanValue() == false)	flags[tnum].down();      win.step(tnum-3, 2); //     if (continuous[0].booleanValue() == false)//	flags[tnum].up();      yield();    }  }  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -