zoukankan      html  css  js  c++  java
  • JAVA 线程间通信

    /*
    	多线程编程 生产者和消费者
    */
    
    class Res
    {
    	private int count=0;
    	private String name;
    
    	private	boolean flag = false;
    
    	public synchronized void set(String name)
    	{	
    		while(flag)
    			try{wait();}catch(Exception e){}
    			
    		this.name = name+ " "+ (++count);
    		System.out.println(Thread.currentThread().getName() + "--生产者--" + this.name);
    		
    		flag = true;
    		this.notifyAll();
    	}
    
    	public synchronized void out()
    	{
    		while(!flag)
    			try{this.wait();}catch(Exception e){}
    
    		System.out.println(Thread.currentThread().getName() + "--消费者----" + this.name);
    
    		flag = false;
    		this.notifyAll();//唤醒所有的等待线程
    	}
    	
    }
    
    class Producer implements Runnable
    {
    	Res r = new Res();
    
    	Producer(Res r)
    	{
    		this.r = r;
    	}
    		
    	public void run()
    	{
    		while(true)
    			r.set("商品");
    	}
    }
    
    
    class Consumer implements Runnable
    {
    	Res r = new Res();
    
    	Consumer(Res r)
    	{
    		this.r = r;
    	}
    	
    	public void run()
    	{
    		while(true)
    			r.out();
    	}
    
    }
    
    class TestDemo
    {
    	public static void main(String []args)
    	{
    		Res r = new Res();
    
    		Producer p = new Producer(r);
    		Consumer c = new Consumer(r);
    
    		Thread t1 = new Thread(p);
    		Thread t2 = new Thread(c);
    		Thread t3 = new Thread(p);
    		Thread t4 = new Thread(c);
    
    
    		t1.start();
    		t2.start();
    		t3.start();
    		t4.start();
    	}
    }

  • 相关阅读:
    A1143. Lowest Common Ancestor
    三个loading小动画实例
    CSS之圣杯布局与双飞翼布局
    sublime个人快捷键
    响应式之表格
    CSS之column语法
    使用column简单实现瀑布流效果
    Flex 布局教程:实例篇(转)
    Flex 布局教程:语法篇(转)
    简单实现瀑布流效果
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258531.html
Copyright © 2011-2022 走看看