如何在不同类的ExecutorsServices之间传递队列?

时间:2015-05-29 12:25:14

标签: java threadpoolexecutor blockingqueue

我创建了两个模式:一个启动class X(其中包含以ExecutorService开头的线程,将其命名为Es),第二个启动class Y(其中包含以{开头的线程) {1}})。现在,它们都在ESclass Z内启动。但是,Es也会直接从自身开始一组线程(Z

ES

在X类中有很多线程,但有一个人特别感兴趣“:

public class Z { 
...
public static void main(String [] args)
    { 
    service=Executors.newFixedThreadPool(xNum);
        for(int k=0; k < xNum; k++){
            X x=new X(k);
            service.submit(x);
        }

    service=Executors.newFixedThreadPool(yNum);
        for(int k=0; k < yNum; k++){
            Y y=new Y(k);
            service.submit(y);
        }

    service=Executors.newFixedThreadPool(zNum);
        for(int k=0; k < zNum; k++){
            directThread dt=new directThread(queue1, queue2, queue3);
            service.submit(dt);

        }
    }
}

public class X{ ... public void run(){ while(true){ ... service = Executors.newFixedThreadPool(XStuffNum); for (int i=0; i < SStuffNum; i++) { service.submit(new FirstClass(blocking1, blocking2, blocking3)); } } } } 课程中认识到Y。 queue和blocking是BlockingQueues的名称。

所以SecondClass应该从dt阻塞中获取数据,将它们放入队列中,然后将它们传递给FirstClass队列。我的问题是,如何让SecondClass占用dt内的队列?

EDIT。问题解决了。在FirsClassX内创建getter就足够了,因此Z可以Y

0 个答案:

没有答案