zoukankan      html  css  js  c++  java
  • java多线程计算机流水线模型

    /*设计一个生产电脑和搬运电脑类,要求每生产出一台电脑就搬走一台电脑。
    *没有生产出新的电脑,则搬运工要等待新电脑产出;
    *如果生产出的电脑没有搬走,则要等待电脑搬走之后再生产,并统计出生产的电脑数量。 
    */
    package Java多线程_01;
    
    class Resource_01{
    	private Computer computer;
    	public synchronized void make() throws Exception{
    		if(this.computer != null) {
    			super.wait();
    		}
    		Thread.sleep(100);
    		this.computer = new Computer("惠普v1000", 11000);
    		System.out.println("【生产电脑】" + this.computer);
    		super.notifyAll();
    	}
    	public synchronized void get() throws Exception{
    		if(this.computer == null) {
    			super.wait();
    		}
    		Thread.sleep(10);
    		System.out.println("【取走电脑】"+this.computer);
    		this.computer = null;
    		super.notifyAll();
    	}
    }
    
    class Computer{
    	private static int count = 0;
    	private String name;
    	private double price;
    	public Computer(String name, double price) {
    		this.name = name;
    		this.price = price;
    		count++;
    	}
    	public String toString() {
    		return "【第"+count+"台电脑】"+"电脑品牌:"+this.name+"、价值:"+this.price;
    	}
    }
    
    class Producer_01 implements Runnable{
    	private Resource_01 resource;
    	public Producer_01(Resource_01 resource) {
    		this.resource = resource;
    	}
    	public void run() {
    		for(int x=0;x<50;x++) {
    			try {
    				this.resource.make();
    			}catch(Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    
    class Consumer_01 implements Runnable{
    	private Resource_01 resource;
    	public Consumer_01(Resource_01 resource) {
    		this.resource = resource;
    	}
    	public void run() {
    		for(int x=0;x<50;x++) {
    			try {
    				this.resource.get();
    			}catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    
    public class homework_02 {
    	public static void main(String[] args) {
    		Resource_01 resource = new Resource_01();
    		new Thread(new Producer_01(resource)).start();
    		new Thread(new Consumer_01(resource)).start();
    	}
    }
    

      

  • 相关阅读:
    JavaScript判断移动端及pc端访问不同的网站
    详情点击文字展开,再点击隐藏
    让IE6/IE7/IE8浏览器支持CSS3属性
    随机输入两位数,并将其交换位置输出
    100-999的水仙花数
    C++读取文件
    求n项阶乘之和并求出和的后六位
    n的阶乘
    3*n+1问题
    完全平方数的判断
  • 原文地址:https://www.cnblogs.com/sunzhongyu008/p/11150006.html
Copyright © 2011-2022 走看看