• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

java 消费者 生产者模式(线程间的通信)

JAVA相关 水墨上仙 2878次浏览

java 消费者 生产者模式(线程间的通信)

package cn.itcast.gz;
/**
 * 消费者 生产者模式(线程间的通信)
 * 
 * 
 * 
 */
public class ResourceDemo3 {
	public static void main(String[] args) {
	     
	   Resource3 r = new Resource3();
	   
	   Input3 input = new Input3(r);
	   Output3 output = new Output3(r);
	   
	   Thread t1 = new Thread(input);
	   Thread t2 = new Thread(output);
	   
	   t1.start();
	   t2.start();
	}
}
class Resource3 {
	private String name;
	private String sex;
	private boolean flag=false;
	
	public synchronized void setInfo(String name,String sex)
	{  
		
		if(flag)
		    try{this.wait();}catch(Exception e){e.printStackTrace();}; 
		this.name = name;
		this.sex= sex;
		flag = true;
		notifyAll();
		
	}
	
	public synchronized void getInfo()
	{    
		if(!flag)
			try{this.wait();}catch(Exception e){e.printStackTrace();};
		System.out.println("name: "+name +"sex: "+sex);
		flag = false;
		this.notifyAll();
	}
}
class Input3 implements Runnable
{
	private Resource3 r;
	private int i=0;
	public Input3(Resource3 r)
	{
		this.r = r;
	}
	
	@Override
	public void run() {
       
		while(true)
		{
			if(i==0)
			{
				r.setInfo("小小", "女女女女女女");
			}
			else
			{
				r.setInfo("大大", "男");
			}
			i=(i+1)%2;
		}
		
	}
}
class Output3 implements Runnable
{
	private Resource3 r;
	public Output3(Resource3 r)
	{
		this.r = r;
	}
	@Override
	public void run() {
		while(true)
		{
			r.getInfo();
		}
	}
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明java 消费者 生产者模式(线程间的通信)
喜欢 (0)
加载中……