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();
}
}
使用Java的Semaphore类来实现读者与写者问题
最新推荐文章于 2022-03-01 23:53:35 发布