public class DatabaseEnvironmentAccess implements Runnable { boolean done; private Thread t; DatabaseEnvironmentAccess() { //set up boring stuff. } public start() { done = false; t = new Thread(this); t.start(); } public stop() { done = true; } public boolean isRunning() { return !done; } public run() { while (!done) { // do stuff } } }