汎用的な使用+ブロックキュー
1806 ワード
package queue;
import java.util.concurrent.ArrayBlockingQueue;
/**
*
* ArrayBlockingQueue
*/
public class QueueBank<E> {
private final static int maxStoreSize = 100;
public static QueueBank<FileBean> toBeQuery = new QueueBank<FileBean>("toBeQuery");
public static QueueBank<String> stringQuery = new QueueBank<String>("StringQuery");
ArrayBlockingQueue<E> queue = new ArrayBlockingQueue<E>(maxStoreSize);
private String queueName = "";
public QueueBank(String name){
queueName = name;
}
public void put(E o) throws InterruptedException {
queue.put(o);
}
public E get() throws InterruptedException {
return (E) queue.take();
}
public String getQueueName() {
return queueName;
}
public void setQueueName(String queueName) {
this.queueName = queueName;
}
public static void main(String[] args) throws InterruptedException {
QueueBank<FileBean> q1 = QueueBank.toBeQuery;
FileBean bean1 = new FileBean();
bean1.setFileName("name1");
bean1.setFileSize("size1");
q1.put(bean1);
FileBean r1 = q1.get();
System.out.println(q1.getQueueName() + " : " +r1.getFileName() + " : "+ r1.getFileSize());
QueueBank<String> q2 = QueueBank.stringQuery;
q2.put("1");
q2.put("2");
q2.put("3");
System.out.println(q2.getQueueName() + " : " +q2.get() + q2.get()+ q2.get()+ q2.get());
}
}