public class Synchronizer { public final String targetHash; private Long solution = null; public Synchronizer(String hash) { targetHash = hash; } public synchronized void setSolution(long password) { solution = password; this.notifyAll(); } public synchronized long getSolution() { return solution; } public synchronized boolean hasSolution() { return (solution != null); } }