processor.processFile(path);
final FilePoller poller = ... final FileProcessor processor = ... final ExecutorService executor = Executors.newFixedThreadPool(4); executor.submit(new Runnable() { public void run() { final File file = poller.pollForFile(); executor.submit(new Runnable() { public void run() { processor.processFile(file); } } ); // repeat, but wait for a free thread. executor.submit(this); } }); // to stop the whole thing executor.shutdown();
processor.processFile(path);
processor.processFile(path);
processor.processFile(path);
processor.processFile(path);