当前位置:首页 > 开发 > 编程语言 > Java > 正文

java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待

发表于: 2012-04-14   作者:bylijinnan   来源:转载   浏览:
摘要: public class PC { /** * 题目:生产者-消费者。 * 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。 */ private static final Integer[] val=new Integer[10]; private static

public class PC {

	/**
	 * 题目:生产者-消费者。
	 * 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
	 */
	
	private static final Integer[] val=new Integer[10];
	private static int size=0;
	private static final int MAX_SIZE=10;
	
	public static void main(String[] args)  {
		PC pc=new PC();
		new Thread(pc.new P()).start();
		new Thread(pc.new C()).start();
	}

	public synchronized void consume(){
			while(size<=0){
				try {
					System.out.println(size+"- consume wait");
					wait();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			val[--size]=0;
			notifyAll();
			System.out.println("successful consume and now size="+size);
	}
	
	public  synchronized void produce(int value){ 
			while(size==MAX_SIZE){
				try {
					System.out.println(size+"- produce wait");
					wait();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			val[size++]=value;
			notifyAll();
			System.out.println("successful produce and now size="+size);
	}
	
	class P implements Runnable{
		public void run(){
			while(true)produce(1000);
		}
	}
	
	class C implements Runnable{
		public void run(){
			while(true)consume();
		}
	}
	
}

java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
数组 1 声明时不能指定长度;例如int a[5]//非法 2 多维数组声明和初始化应按高维到低维; int[][]
2 数组
百度百科: 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用
3 数组
ECMAScript中的数组每个元素可以保存任何类型。ECMAScript 中数组的大小也是可以调整的。 创建Array
4 数组
/* * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reser
5 数组
/* * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reser
/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserve
7 数组
学会使用数组可以将问题简单化,不用将变量一个一个的定义,弊端是数组定义的变量都是一个类型,当
8 数组
/* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved
9 数组
数组的初始化:如果没有显示提供元素初值,则数组则会和普通变量一样初始化。 #include <iostrea
返回整数数组中最大子数组的和2 1.题目: 返回一个整数数组中最大子数组的和。 2.要求: 1)要求程
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号