ExecutorService executor =Executors.newFixedThreadPool(1);
private volatileList<Future<Object>> runningFutures = newArrayList<Future<Object>>(writers.size());
private Thread taskThread = new Thread(newTaskRunner());
public static LinkedBlockingQueue<ExportTask>exportQueue = new LinkedBlockingQueue<ExportTask>();
class TaskRunnerimplements Runnable
{
@Override
public void run()
{
while (true)
{
try
{
if (finished)
{
currentTask =exportQueue.take();
finished = false;
executeTask(currentTask);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}