puzzlesolver.java
来自「java concurrency in practice 源码. JAVA」· Java 代码 · 共 39 行
JAVA
39 行
package net.jcip.examples;import java.util.concurrent.atomic.*;/** * PuzzleSolver * <p/> * Solver that recognizes when no solution exists * * @author Brian Goetz and Tim Peierls */public class PuzzleSolver <P,M> extends ConcurrentPuzzleSolver<P, M> { PuzzleSolver(Puzzle<P, M> puzzle) { super(puzzle); } private final AtomicInteger taskCount = new AtomicInteger(0); protected Runnable newTask(P p, M m, PuzzleNode<P, M> n) { return new CountingSolverTask(p, m, n); } class CountingSolverTask extends SolverTask { CountingSolverTask(P pos, M move, PuzzleNode<P, M> prev) { super(pos, move, prev); taskCount.incrementAndGet(); } public void run() { try { super.run(); } finally { if (taskCount.decrementAndGet() == 0) solution.setValue(null); } } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?