- class Storage
- {
- //数据存储数组
- private int[] cells=new int[10];
- //inPos表示存入时数组下标,outPos表示取出时数组下标
- private int inPos,outPos;
- //定义一个put()方法向数组中存入数据
- public void put(int num)
- {
- cells[inPos]=num;
- System.out.println("在cells["+inPos+"]中放入数据---"+cells[inPos]);
- inPos++; //存完元素让位置加1
- if(inPos==cells.length)
- {
- inPos=0; //当inPos为数组长度时,将其置为0
- }
- }
- public void get()
- {
- int data=cells[outPos];
- System.out.println("从cells["+outPos+"]中取出数据"+data);
- outPos++; //取完元素让位置加1
- if (outPos==cells.length)
- {
- outPos=0;
- }
- }
- }
- class Input implements Runnable //输入线程类
- {
- private Storage st;
- private int num; //定义一个变量num
- Input(Storage st) //通过构造方法接收一个Storage对象
- {
- this.st=st;
- }
- public void run()
- {
- while(true)
- {
- st.put(num++); //将num存入数组,每次存入后num自增
- }
- }
- }
- class Output implements Runnable //输出线程类
- {
- private Storage st;
- Output(Storage st) //通过构造方法接收一个Storage对象
- {
- this.st=st;
- }
- public void run()
- {
- while(true)
- {
- st.get(); //循环取出元素
- }
- }
- }
- public class Example17
- {
- public static void main(String[] args)
- {
- Storage st=new Storage(); //创建数据存储对象
- Input input=new Input(st); //创建Input对象传入Storage对象
- Output output=new Output(st); //创建Output对象传入Storage对象
- new Thread(input).start(); //开启新线程
- new Thread(output).start(); //开启新线程
- }
- }
复制代码
|
|