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

📄 produce_consume.java

📁 java实现生产者与消费者双线程问题 在JDK6.0上测试通过
💻 JAVA
字号:
import java.util.*;class HoldInt { 	private int sharedInt; 	private boolean writeAble=true;	private LinkedList<Integer> list = new LinkedList<Integer>();	public synchronized void set(int val) 	{ 		while(!writeAble || list.size() >= 20) 		{			try			{				System.out.println("Produce Waiting......");				wait();			}					catch(InterruptedException e){} 		} 			writeAble=false; 		list.addLast(val); 		System.out.println("Produce Finished......"+val);		notify();	}  	public synchronized int get() 	{		while(writeAble || list.size() == 0) 	 	{			try			{				System.out.println("Consume Wainting......");				wait(); 	 		} 			 		catch(InterruptedException e){} 	 	} 		sharedInt = list.getFirst().intValue();		list.removeFirst();		writeAble=true;		System.out.println("Consume Finished......"+sharedInt);		notify();	 	return sharedInt; 	} } class ProduceInt extends Thread { 	private HoldInt hi; 	public ProduceInt(HoldInt hiForm) 	{		 hi=hiForm; 	} 	public void run() 	{		for(int i=1;i<=400;i++) 		{		 	hi.set(i);  		} 	}} class ConsumeInt extends Thread {	private HoldInt hi; 	public ConsumeInt(HoldInt hiForm) 	{		hi=hiForm; 	} 	public void run() 	{		for(int i=1;i<=400;i++) 		{			hi.get(); 		}	}} class produce_consume { 	public static void main(String args[]) 	{ 		HoldInt h=new HoldInt(); 		ProduceInt p=new ProduceInt(h); 		ConsumeInt c=new ConsumeInt(h); 		p.start(); 		c.start(); 	}}

⌨️ 快捷键说明

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