new Thread(new Customer(\ new Thread(new Customer(\ new Thread(new Customer(\ new Thread(new Customer(\ new Thread(new Customer(\ } } (2)
package testjava.thread; public class SellBuy { /**
* @param args */
public static void main(String[] args) { // TODO Auto-generated method stub Q q = new Q();
new Thread(new Producer(q)).start(); new Thread(new Comsumer(q)).start(); } }
class Producer implements Runnable {
Q q;
public Producer(Q q) {
this.q=q; }
public void run() {
int i=0; while(true) { if(i==0)
q.put(\ else
q.put(\
i=(i+1)%2;
} } }
class Comsumer implements Runnable { Q q;
public Comsumer(Q q) {
this.q=q; }
public void run() {
while(true) {
q.get(); } } } class Q {
String name=\ String sex=\ boolean bFull=false;
public synchronized void put(String name,String sex) {
if(bFull)
try {wait();} catch (Exception e) {} this.name=name;
try {Thread.sleep(1);} catch (Exception e) {} this.sex=sex; bFull=true; notify(); }
public synchronized void get() {
if(!bFull)
try {wait();} catch (Exception e) {} System.out.println(name+\ bFull=false; notify(); } }