producer.java

来自「这是操作系统的程序设计」· Java 代码 · 共 31 行

JAVA
31
字号
/**
 * 生产者
 *
 */
public class Producer implements Runnable{
	private Semaphore mutex,full,empty;
	private Buffer buf;
	String name;
	public Producer(String name,Semaphore mutex,Semaphore full,Semaphore empty,Buffer buf){
		this.mutex  = mutex;
		this.full  = full;
		this.empty = empty;
		this.buf = buf;
		this.name = name;
	}
	public void run(){
		while(true){
			empty.p();
			mutex.p();
			System.out.println(name+" inserts a new product into "+buf.nextEmptyIndex);
			buf.nextEmptyIndex = (buf.nextEmptyIndex+1)%buf.size;
			mutex.v();
			full.v();	
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {				
				e.printStackTrace();
			}
		}
	}
}

⌨️ 快捷键说明

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