package edu.stanford.rsl.conrad.parallel; import java.util.concurrent.CountDownLatch; /** * Thread to be run with a ParallelThreadExecutor. Wraps the run method using the abstract method execute. * Avoids deadlocks as exceptions in execute are caught and displayed. Nonetheless, the count down in the latch is performed. Hence, the ParallelThreadExecutor will not wait until the end of time. * * @author akmaier * */ public abstract class ParallelThread extends Thread implements NamedParallelizableRunnable { CountDownLatch latch; @Override public void setLatch(CountDownLatch latch) { this.latch = latch; } @Override public void run(){ try { execute(); } catch (Exception e){ e.printStackTrace(); } latch.countDown(); } /** * Defines the code to be executed. Is called from the run method of the Thread. */ abstract public void execute(); } /* * Copyright (C) 2010-2014 Andreas Maier * CONRAD is developed as an Open Source project under the GNU General Public License (GPL). */