public final class ThreadUtils extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ThreadUtils.SshdThreadFactory |
public static ExecutorService protectExecutorServiceShutdown(ExecutorService executorService, boolean shutdownOnExit)
ExecutorService
in such a way as to "protect"
it for calls to the ExecutorService.shutdown()
or
ExecutorService.shutdownNow()
. All other calls are delegated as-is
to the original service. Note: the exposed wrapped proxy will
answer correctly the ExecutorService.isShutdown()
query if indeed
one of the shutdown
methods was invoked.executorService
- The original service - ignored if null
shutdownOnExit
- If true
then it is OK to shutdown the executor
so no wrapping takes place.public static ClassLoader resolveDefaultClassLoader(Object anchor)
public static Iterable<ClassLoader> resolveDefaultClassLoaders(Object anchor)
public static <T> T createDefaultInstance(Class<?> anchor, Class<T> targetType, String className) throws ReflectiveOperationException
ReflectiveOperationException
public static <T> T createDefaultInstance(ClassLoader cl, Class<T> targetType, String className) throws ReflectiveOperationException
ReflectiveOperationException
public static <T> T createDefaultInstance(Iterable<ClassLoader> cls, Class<T> targetType, String className) throws ReflectiveOperationException
ReflectiveOperationException
public static ClassLoader resolveDefaultClassLoader(Class<?> anchor)
Attempts to find the most suitable ClassLoader
as follows:
Check the Thread.getContextClassLoader()
value
If no thread context class loader then check the anchor class (if given) for its class loader
If still no loader available, then use ClassLoader.getSystemClassLoader()
anchor
- The anchor Class
to use if no current thread
- ignored if null
context class loaderClassLoader
public static Iterable<ClassLoader> resolveDefaultClassLoaders(Class<?> anchor)
public static ExecutorService newFixedThreadPool(String poolName, int nThreads)
public static ExecutorService newCachedThreadPool(String poolName)
public static ScheduledExecutorService newSingleThreadScheduledExecutor(String poolName)
public static ExecutorService newSingleThreadExecutor(String poolName)
Copyright © 2008–2019 The Apache Software Foundation. All rights reserved.