您的位置:首页 > 其它

多线程学习——消费者生产者(2)

2013-10-06 22:16 323 查看
package com.daicy.ProducerConsumer;

import java.util.concurrent.LinkedBlockingQueue;

public class DLinkedBlockingQueue<E> implements IDStack<E> {

private LinkedBlockingQueue stack = new LinkedBlockingQueue();

@Override
public E push(E item) throws InterruptedException {
// TODO Auto-generated method stub
stack.put(item);
return item;
}

@Override
public E pop() throws InterruptedException {
// TODO Auto-generated method stub
return (E) stack.take();
}

}

package com.daicy.ProducerConsumer;

import java.util.Stack;

public class DStack<E> implements IDStack<E> {
private Stack stack = new Stack();

public synchronized E push(E item) {
stack.push(item);
notify();
return item;
}

public synchronized E pop() throws InterruptedException {
while (stack.size() == 0) {
this.wait();
}
return (E) stack.pop();
}

}


package com.daicy.ProducerConsumer;

public interface IDStack<E> {

public E push(E item) throws InterruptedException;

public E pop() throws InterruptedException;

}


package com.daicy.ProducerConsumer;

public class Mantou {
private int id;

Mantou(int id) {
this.id = id;
}

public String toString() {
return "Mantou :" + id;
}
}


package com.daicy.sequence;

public class SafeSequence {
private static int value;

public static synchronized int getNext() {
return value++;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: