Class ThreadUtils
- java.lang.Object
-
- org.apache.sshd.common.util.threads.ThreadUtils
-
public final class ThreadUtils extends java.lang.ObjectUtility class for thread pools.
-
-
Constructor Summary
Constructors Modifier Constructor Description privateThreadUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> TcreateDefaultInstance(java.lang.Class<?> anchor, java.lang.Class<? extends T> targetType, java.lang.String className)static <T> TcreateDefaultInstance(java.lang.ClassLoader cl, java.lang.Class<? extends T> targetType, java.lang.String className)static <T> TcreateDefaultInstance(java.lang.Iterable<? extends java.lang.ClassLoader> cls, java.lang.Class<? extends T> targetType, java.lang.String className)static java.util.Iterator<java.lang.ClassLoader>iterateDefaultClassLoaders(java.lang.Class<?> anchor)static CloseableExecutorServicenewCachedThreadPool(java.lang.String poolName)static CloseableExecutorServicenewCachedThreadPoolIf(CloseableExecutorService executorService, java.lang.String poolName)static CloseableExecutorServicenewFixedThreadPool(java.lang.String poolName, int nThreads)static CloseableExecutorServicenewFixedThreadPoolIf(CloseableExecutorService executorService, java.lang.String poolName, int nThreads)static CloseableExecutorServicenewSingleThreadExecutor(java.lang.String poolName)static java.util.concurrent.ScheduledExecutorServicenewSingleThreadScheduledExecutor(java.lang.String poolName)static CloseableExecutorServicenoClose(CloseableExecutorService executorService)static CloseableExecutorServiceprotectExecutorServiceShutdown(CloseableExecutorService executorService, boolean shutdownOnExit)Wraps anCloseableExecutorServicein such a way as to "protect" it for calls to theExecutorService.shutdown()orExecutorService.shutdownNow().static java.lang.Class<?>resolveDefaultClass(java.lang.Class<?> anchor, java.lang.String className)static java.lang.Class<?>resolveDefaultClass(java.lang.Iterable<? extends java.lang.ClassLoader> cls, java.lang.String className)static java.lang.ClassLoaderresolveDefaultClassLoader(java.lang.Class<?> anchor)Attempts to find the most suitableClassLoaderas follows:static java.lang.ClassLoaderresolveDefaultClassLoader(java.lang.Object anchor)static java.lang.Iterable<java.lang.ClassLoader>resolveDefaultClassLoaders(java.lang.Class<?> anchor)static java.lang.Iterable<java.lang.ClassLoader>resolveDefaultClassLoaders(java.lang.Object anchor)
-
-
-
Method Detail
-
protectExecutorServiceShutdown
public static CloseableExecutorService protectExecutorServiceShutdown(CloseableExecutorService executorService, boolean shutdownOnExit)
Wraps anCloseableExecutorServicein such a way as to "protect" it for calls to theExecutorService.shutdown()orExecutorService.shutdownNow(). All other calls are delegated as-is to the original service. Note: the exposed wrapped proxy will answer correctly theExecutorService.isShutdown()query if indeed one of theshutdownmethods was invoked.- Parameters:
executorService- The original service - ignored ifnullshutdownOnExit- Iftruethen it is OK to shutdown the executor so no wrapping takes place.- Returns:
- Either the original service or a wrapped one - depending on the value of the shutdownOnExit parameter
-
noClose
public static CloseableExecutorService noClose(CloseableExecutorService executorService)
-
resolveDefaultClassLoader
public static java.lang.ClassLoader resolveDefaultClassLoader(java.lang.Object anchor)
-
resolveDefaultClassLoaders
public static java.lang.Iterable<java.lang.ClassLoader> resolveDefaultClassLoaders(java.lang.Object anchor)
-
resolveDefaultClassLoaders
public static java.lang.Iterable<java.lang.ClassLoader> resolveDefaultClassLoaders(java.lang.Class<?> anchor)
-
resolveDefaultClass
public static java.lang.Class<?> resolveDefaultClass(java.lang.Class<?> anchor, java.lang.String className)
-
resolveDefaultClass
public static java.lang.Class<?> resolveDefaultClass(java.lang.Iterable<? extends java.lang.ClassLoader> cls, java.lang.String className)
-
createDefaultInstance
public static <T> T createDefaultInstance(java.lang.Class<?> anchor, java.lang.Class<? extends T> targetType, java.lang.String className) throws java.lang.ReflectiveOperationException- Throws:
java.lang.ReflectiveOperationException
-
createDefaultInstance
public static <T> T createDefaultInstance(java.lang.ClassLoader cl, java.lang.Class<? extends T> targetType, java.lang.String className) throws java.lang.ReflectiveOperationException- Throws:
java.lang.ReflectiveOperationException
-
createDefaultInstance
public static <T> T createDefaultInstance(java.lang.Iterable<? extends java.lang.ClassLoader> cls, java.lang.Class<? extends T> targetType, java.lang.String className) throws java.lang.ReflectiveOperationException- Throws:
java.lang.ReflectiveOperationException
-
resolveDefaultClassLoader
public static java.lang.ClassLoader resolveDefaultClassLoader(java.lang.Class<?> anchor)
Attempts to find the most suitable
ClassLoaderas 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()
- Parameters:
anchor- The anchorClassto use if no current thread context class loader - ignored ifnull- Returns:
- The resolved
ClassLoader- Note: might still benullif went all the way "down" to the system class loader and it was alsonull.
-
-
iterateDefaultClassLoaders
public static java.util.Iterator<java.lang.ClassLoader> iterateDefaultClassLoaders(java.lang.Class<?> anchor)
-
newFixedThreadPoolIf
public static CloseableExecutorService newFixedThreadPoolIf(CloseableExecutorService executorService, java.lang.String poolName, int nThreads)
-
newFixedThreadPool
public static CloseableExecutorService newFixedThreadPool(java.lang.String poolName, int nThreads)
-
newCachedThreadPoolIf
public static CloseableExecutorService newCachedThreadPoolIf(CloseableExecutorService executorService, java.lang.String poolName)
-
newCachedThreadPool
public static CloseableExecutorService newCachedThreadPool(java.lang.String poolName)
-
newSingleThreadScheduledExecutor
public static java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.lang.String poolName)
-
newSingleThreadExecutor
public static CloseableExecutorService newSingleThreadExecutor(java.lang.String poolName)
-
-