Class ObjectBoxThreadPool

  • All Implemented Interfaces:
    java.util.concurrent.Executor, java.util.concurrent.ExecutorService

    @Internal
    public class ObjectBoxThreadPool
    extends java.util.concurrent.ThreadPoolExecutor
    Custom thread pool similar to Executors.newCachedThreadPool() with the following adjustments:
    • Release thread local resources (BoxStore.closeThreadResources())
    • Reduce keep-alive time for threads to 20 seconds
    • Uses a ThreadFactory to name threads like "ObjectBox-1-Thread-1"
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  ObjectBoxThreadPool.ObjectBoxThreadFactory  
      • Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor

        java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private BoxStore boxStore  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void afterExecute​(java.lang.Runnable runnable, java.lang.Throwable throwable)  
      • Methods inherited from class java.util.concurrent.ThreadPoolExecutor

        allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, execute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow, terminated, toString
      • Methods inherited from class java.util.concurrent.AbstractExecutorService

        invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • boxStore

        private final BoxStore boxStore
    • Constructor Detail

      • ObjectBoxThreadPool

        public ObjectBoxThreadPool​(BoxStore boxStore)
    • Method Detail

      • afterExecute

        protected void afterExecute​(java.lang.Runnable runnable,
                                    java.lang.Throwable throwable)
        Overrides:
        afterExecute in class java.util.concurrent.ThreadPoolExecutor