All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dpfmanager.shell.modules.threading.runnable.PhassesRunnable Maven / Gradle / Ivy

/**
 * 

PhassesRunnable.java

This program is free software: you can redistribute it * and/or modify it under the terms of the GNU General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any later version; or, * at your choice, under the terms of the Mozilla Public License, v. 2.0. SPDX GPL-3.0+ or MPL-2.0+. *

This program is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License and the Mozilla Public License for more details.

*

You should have received a copy of the GNU General Public License and the Mozilla Public * License along with this program. If not, see http://www.gnu.org/licenses/ * and at http://mozilla.org/MPL/2.0 .

NB: for the * © statement, include Easy Innova SL or other company/Person contributing the code.

© * 2015 Easy Innova, SL

* * @author Adria Llorens * @version 1.0 * @since 23/7/2015 */ package dpfmanager.shell.modules.threading.runnable; import dpfmanager.shell.core.context.DpfContext; import java.util.ArrayList; import java.util.List; /** * Created by Adria Llorens on 14/04/2016. */ public class PhassesRunnable extends DpfRunnable { private List firstList; private List secondList; public PhassesRunnable(List l1, List l2){ // No context yet firstList = l1; secondList = l2; } @Override public void handleContext(DpfContext c) { } @Override public void runTask() { // Launch all first runnables List threads = new ArrayList<>(); int i = 1; for (DpfRunnable runnable : firstList){ runnable.setName("First "+i); threads.add(run(runnable)); i++; } // Wait for al of them boolean error = false; for (Thread waiting : threads){ try { waiting.join(); } catch(Exception e){ error = true; break; } } // Now run second list if (!error){ int j = 1; for (DpfRunnable runnable : secondList){ runnable.setName("Second "+j); run(runnable); j++; } } } public Thread run(DpfRunnable runnable){ runnable.setContext(context); Thread thread = new Thread(runnable); thread.start(); return thread; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy