Class ThreadPool

  • All Implemented Interfaces:
    Lifecycle

    public class ThreadPool
    extends java.lang.Object
    implements Lifecycle
    Thread pool based on ThreadPoolExecutor
    Since:
    5.2
    Author:
    Bela Ban
    • Field Detail

      • thread_pool

        protected java.util.concurrent.Executor thread_pool
      • log

        protected Log log
      • address

        protected Address address
      • thread_pool_full_log

        protected SuppressLog<java.lang.String> thread_pool_full_log
      • enabled

        protected boolean enabled
      • min_threads

        protected int min_threads
      • max_threads

        protected int max_threads
      • keep_alive_time

        protected long keep_alive_time
      • rejection_policy

        protected java.lang.String rejection_policy
      • thread_pool_full_suppress_time

        protected long thread_pool_full_suppress_time
      • thread_dumps_threshold

        @Deprecated(since="5.4")
        protected int thread_dumps_threshold
        Deprecated.
      • thread_dump_path

        @Deprecated(since="5.4")
        protected java.lang.String thread_dump_path
        Deprecated.
      • thread_dumps_enabled

        protected boolean thread_dumps_enabled
      • increase_max_size_dynamically

        protected boolean increase_max_size_dynamically
      • delta

        protected int delta
      • num_rejected_msgs

        protected final java.util.concurrent.atomic.LongAdder num_rejected_msgs
    • Constructor Detail

      • ThreadPool

        public ThreadPool()
    • Method Detail

      • isEnabled

        public boolean isEnabled()
      • getThreadPool

        public java.util.concurrent.Executor getThreadPool()
      • setThreadPool

        public ThreadPool setThreadPool​(java.util.concurrent.Executor thread_pool)
      • isShutdown

        public boolean isShutdown()
      • getMinThreads

        public int getMinThreads()
      • setMinThreads

        public ThreadPool setMinThreads​(int size)
      • getMaxThreads

        public int getMaxThreads()
      • setMaxThreads

        public ThreadPool setMaxThreads​(int size)
      • getKeepAliveTime

        public long getKeepAliveTime()
      • setKeepAliveTime

        public ThreadPool setKeepAliveTime​(long time)
      • setRejectionPolicy

        public ThreadPool setRejectionPolicy​(java.lang.String policy)
      • getRejectedExecutionHandler

        public java.util.concurrent.RejectedExecutionHandler getRejectedExecutionHandler()
      • setRejectedExecutionHandler

        public void setRejectedExecutionHandler​(java.util.concurrent.RejectedExecutionHandler handler)
      • getThreadPoolFullSuppressTime

        public long getThreadPoolFullSuppressTime()
      • setThreadPoolFullSuppressTime

        public ThreadPool setThreadPoolFullSuppressTime​(long t)
      • getThreadDumpsEnabled

        public boolean getThreadDumpsEnabled()
      • setThreadDumpsEnabled

        public ThreadPool setThreadDumpsEnabled​(boolean b)
      • getAddress

        public Address getAddress()
      • getIncreaseMaxSizeDynamically

        public boolean getIncreaseMaxSizeDynamically()
      • setIncreaseMaxSizeDynamically

        public ThreadPool setIncreaseMaxSizeDynamically​(boolean b)
      • getDelta

        public int getDelta()
      • setDelta

        public ThreadPool setDelta​(int d)
      • numberOfRejectedMessages

        public long numberOfRejectedMessages()
      • getThreadDumpsThreshold

        @Deprecated
        public static int getThreadDumpsThreshold()
        Deprecated.
      • setThreadDumpsThreshold

        @Deprecated
        public ThreadPool setThreadDumpsThreshold​(int ignore)
        Deprecated.
      • getNumberOfThreadDumps

        @Deprecated
        public static int getNumberOfThreadDumps()
        Deprecated.
      • resetThreadDumps

        @Deprecated
        public void resetThreadDumps()
        Deprecated.
      • getThreadPoolSize

        public int getThreadPoolSize()
      • getThreadPoolSizeActive

        public int getThreadPoolSizeActive()
      • getLargestSize

        public int getLargestSize()
      • resetStats

        public void resetStats()
      • init

        public void init()
                  throws java.lang.Exception
        Description copied from interface: Lifecycle
        Called after an instance has been created and before it is started.
        Specified by:
        init in interface Lifecycle
        Throws:
        java.lang.Exception - Thrown if the instance cannot be initialized successfully.
      • destroy

        public void destroy()
        Description copied from interface: Lifecycle
        Called after an instance has been stopped. Cleans up resources
        Specified by:
        destroy in interface Lifecycle
      • removeExpired

        public ThreadPool removeExpired()
      • doExecute

        public void doExecute​(java.lang.Runnable task)
      • pool

        public java.util.concurrent.Executor pool()
      • execute

        public boolean execute​(java.lang.Runnable task)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • createThreadPool

        protected static java.util.concurrent.ExecutorService createThreadPool​(int min_threads,
                                                                               int max_threads,
                                                                               long keep_alive_time,
                                                                               java.lang.String rejection_policy,
                                                                               java.util.concurrent.BlockingQueue<java.lang.Runnable> queue,
                                                                               ThreadFactory factory,
                                                                               Log log)
      • newVirtualThreadPool

        protected static java.util.concurrent.ExecutorService newVirtualThreadPool​(ThreadFactory factory)
      • getNewThreadPerTaskExecutorHandle

        protected static java.lang.invoke.MethodHandle getNewThreadPerTaskExecutorHandle()