package ch21concurrent.examples; import java.util.concurrent.*; /** * WorkerThread * <p/> * Serialized access to a task queue * * @author Brian Goetz and Tim Peierls */ public class WorkerThread extends Thread { private final BlockingQueue<Runnable> queue; public WorkerThread(BlockingQueue<Runnable> queue) { this.queue = queue; } public void run() { while (true) { try { Runnable task = queue.take(); task.run(); } catch (InterruptedException e) { break; /* Allow thread to exit */ } } } }