如何一次将元素添加到另一个队列?

时间:2015-05-12 18:09:47

标签: java multithreading blockingqueue

我有一个启动所有线程的类。

BlockingQueue<MyClass> otherQueue1 = new ArrayBlockingQueue<MyClass>(length);
BlockingQueue<MyClass> niceQueue = new ArrayBlockingQueue<MyClass>(length);
service = Executors.newFixedThreadPool(length);
for (int k = 0; k < length; k++) {
    service.submit(new MyClass(otherQueue1, id));
}

在此for循环中,我想将此MyClass创建到niceQueue。怎么做?

1 个答案:

答案 0 :(得分:0)

BlockingQueue<MyClass> otherQueue1 = new ArrayBlockingQueue<MyClass>(length);
BlockingQueue<MyClass> niceQueue = new ArrayBlockingQueue<MyClass>(length);
    service=Executors.newFixedThreadPool(length);
    for(int k=0; k < length; k++){
        MyClass myClass = new MyClass(otherQueue1, id);   #save reference in local variable
        niceQueue.add(myClass);                           #add saved reference to queue
        service.submit(myClass);                          #submit, same as in your example
    }
}