|
Java example source code file (MultiThreadUtils.java)
The MultiThreadUtils.java Java example source code/* * * * Copyright 2015 Skymind,Inc. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * */ package org.deeplearning4j.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; import java.util.concurrent.*; public class MultiThreadUtils { private static Logger log = LoggerFactory.getLogger(MultiThreadUtils.class); private static ExecutorService instance; public static synchronized ExecutorService newExecutorService() { int nThreads = Runtime.getRuntime().availableProcessors(); return new ThreadPoolExecutor(nThreads, nThreads, 60L, TimeUnit.SECONDS, new LinkedTransferQueue<Runnable>(), new ThreadFactory() { @Override public Thread newThread(Runnable r) { Thread t = Executors.defaultThreadFactory().newThread(r); t.setDaemon(true); return t; } }); } public static void parallelTasks(final List<Runnable> tasks, ExecutorService executorService) { int tasksCount = tasks.size(); final CountDownLatch latch = new CountDownLatch(tasksCount); for(int i=0;i<tasksCount;i++) { final int taskIdx = i; executorService.execute(new Runnable() { public void run() { try { tasks.get(taskIdx).run(); } catch(Throwable e){ log.info("Unchecked exception thrown by task",e); } finally { latch.countDown(); } } }); } try { latch.await(); } catch (Exception e) { throw new RuntimeException(e); } } } Other Java examples (source code examples)Here is a short list of links related to this Java MultiThreadUtils.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.