使用Java的Semaphore类来实现读者与写者问题


import java.util.concurrent.Semaphore;

public class House
{
	int count = 0;
	final Semaphore rw = new Semaphore(10);
	final Semaphore mutex = new Semaphore(1);
	
static 	 class Reader extends Thread{
		public void run(){
			while(true){
				mutex.acquire();
				if(0==count){
					rw.acquire();
				}
				count++;
				mutex.release();
				reading;
				mutex.acquire();
				count--;
				if(0==count){
					rw.release();
				}
				mutex.release();
			}
		}
	}

static 	class Writer extends Thread{
		public void run(){
			while(true){
				rw.acquire();
				wirting;
				rw.release();
			}
		}
	}

public static void main(String [] args){
	new Reader().start();
	new Writer().start();

 }
}

猜你喜欢

转载自blog.csdn.net/justisme/article/details/86506121