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

📄 ex_11_4_2.java

📁 JAVA程序设计与实践.rar
💻 JAVA
字号:
/*
 *文件名:ex_11_4_2.java
 *说  明:一个正确的生产者/消费者程序
 */
class Q
{
	int n;
	boolean valueSet = false;
	synchronized int get() 
	{
		if (!valueSet)
		try 
		{
			wait();
		} catch(InterruptedException e) 
		{
			System.out.println("InterruptedException caught");
		}
		System.out.println("Got: " + n);
		valueSet = false;
		notify();
		return n;
	}
	synchronized void put(int n) 
	{
		if (valueSet)
		try 
		{
			wait();
		} catch(InterruptedException e) 
		{
			System.out.println("InterruptedException caught");
		}
		this.n = n;
		valueSet = true;
		System.out.println("Put: " + n);
		notify();
	}
}
class Producer implements Runnable 
{
	Q q;
	Producer(Q q) 
	{
		this.q = q;
		new Thread(this, "Producer").start();
	}
	public void run() 
	{
		int i = 0;
		while(true) 
		{
			q.put(i++);
		}
	}
}
class Consumer implements Runnable 
{
	Q q;
	Consumer(Q q) 
	{
		this.q = q;
		new Thread(this, "Consumer").start();
	}
	public void run() 
	{
		while(true) 
		{
			q.get();
		}
	}
}

class PCFixed 
{
	public static void main(String args[]) 
	{
		Q q = new Q();
		new Producer(q);
		new Consumer(q);
		System.out.println("Press Control-C to stop.");
	}
}

⌨️ 快捷键说明

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