ticketsell.java

来自「生产者消费者问题模拟」· Java 代码 · 共 52 行

JAVA
52
字号

public class TicketSell {

	public static void main(String[] args) {
		Seller s = new Seller();
		Buyer b1 = new Buyer(10,"b1",s);
		Buyer b2 = new Buyer(5,"b2",s);
		Buyer b3 = new Buyer(5,"b3",s);
		b1.start();
		b2.start();
		b3.start();
		
	}

}

class Seller {
	int five = 0, ten = 0;
	public synchronized void sell(int money) {
		if(money == 5) {
			System.out.println("5 gets");
			five++;
		} else if (money == 10) {
			while(five < 1) {
				try {
					wait();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			System.out.println("10 gets");
			five--;
			ten++;
		}
		notifyAll();
	}
}

class Buyer extends Thread{
	public Buyer(int money, String name, Seller seller) {
		this.money = money;
		this.name = name;
		this.seller = seller;
	}
	public void run() {
		seller.sell(money);
	}
	int money;
	String name;
	Seller seller;
	
}

⌨️ 快捷键说明

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