我的测试

xiaoxiao2026-09-15  11

import java.util.HashSet;import java.util.Iterator;import java.util.LinkedList;import java.util.Queue;import java.util.Set;

public class MemberMain {

 // 作为缓冲区存放对象 private Set setMember = new HashSet();

 // private Boolean isWriter = true; // private Integer []i = new Integer[3];//{1,2,3,4,5,6,7,8,9}; // i = {1,2,3,4,5,6,7,8,9}; private int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

 /**  * @param args  */ public static void main(String[] args) {  // TODO Auto-generated method stub

  // m.operateXml();  MemberMain m = new MemberMain();  Product p = new Product();  Custom c = new Custom();  // 运行写线程;0-9写到一个容器中,最多放5个;  new Thread(p).start();  // 运行读线程;a/b依次取出数据;  new Thread(c).start();

 }

 public int[] getArr() {  return arr; }

}

// 生产者class Product implements Runnable { MemberMain m = new MemberMain(); int[] arr = m.getArr(); Que q = new Que();

 public void run() {  //for (int i = 0; i < arr.length; i++) {   System.out.println("i = 000" );   q.setQue();   }}

// 消费者class Custom implements Runnable { Que q = new Que(); MemberMain m = new MemberMain(); int[] arr = m.getArr();

 // a公司和b公司读 public void run() {  // TODO Auto-generated method stub  //for (int i = 0; i < arr.length; i++) {   System.out.println("j = 111");   q.getQue();

  //}

 }

}

// ,一个线程将排好序的数据存放在队列里;另一个线程读数据,/* * 队列 一个线程将排好序的数据存放在队列里,最多5个; 另一个线程让A/B交替从队列里读数据, */class Que { LinkedList<Integer> q = new LinkedList<Integer>(); Boolean isFull = false; Boolean isEmpty = false; Boolean isA = true; MemberMain m = new MemberMain(); int[] arr = m.getArr();

 public synchronized void setQue() {

  for (int i = 0; i < arr.length; i++) {   System.out.println("jjj =" + i);   q.add(arr[i]);   if (q.size() > 5) {    notify();   }  }  System.out.println("q =" + q);

 }

 public synchronized void getQue() {         if(q.isEmpty()){         notify();        }    if (isA) {   System.out.println("a =" + (Integer) q.peek());   isA = false;  } else {   System.out.println("b =" + (Integer) q.peek());   isA = true;  }

 }

}

转载请注明原文地址: https://www.6miu.com/read-5052696.html

最新回复(0)