尝试遍历orientdb中的多个线程

时间:2018-08-30 00:02:05

标签: java orientdb

我试图以dfs方式遍历,并以多个顶点作为种子节点。 (起始节点)。这些存储在阻塞队列中。我有使用方线程,它一次占用一个节点并执行dfs遍历。但是我正在得到NPE。不确定代码有什么问题。以下是代码。

class Consumer implements Runnable{

private BlockingQueue<Vertex> queue;
private OrientBaseGraph graph;

public Consumer(BlockingQueue<Vertex> queue) {
    graph = DB.getFactory().getNoTx();  
    graph.makeActive();
    this.queue = queue;
}

@Override
public void run() {
    Vertex v = queue.poll();
    Stack<Vertex> stack = new Stack<>();
    stack.push(v);
    while(!stack.isEmpty()) {
        Vertex current = stack.pop();
        Iterable<Vertex> children = current.getVertices(Direction.OUT, "contains");
        for(Vertex child : children) {
            stack.push(child);
        }
    }           
}

}

如何解决此问题或该实现有什么问题?

0 个答案:

没有答案