我试图以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);
}
}
}
}
如何解决此问题或该实现有什么问题?