Class ThreadFactoryBuilder


  • @GwtIncompatible
    public final class ThreadFactoryBuilder
    extends java.lang.Object
    A ThreadFactory builder, providing any combination of these features:
    • whether threads should be marked as daemon threads
    • a naming format
    • a thread priority
    • an uncaught exception handler
    • a backing thread factory

    If no backing thread factory is provided, a default backing thread factory is used as if by calling setThreadFactory(Executors.defaultThreadFactory()).

    Since:
    4.0
    • Constructor Summary

      Constructors 
      Constructor Description
      ThreadFactoryBuilder()
      Creates a new ThreadFactory builder.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.concurrent.ThreadFactory build()
      Returns a new thread factory using the options supplied during the building process.
      private static java.util.concurrent.ThreadFactory doBuild​(ThreadFactoryBuilder builder)  
      private static java.lang.String format​(java.lang.String format, java.lang.Object... args)  
      ThreadFactoryBuilder setDaemon​(boolean daemon)
      Sets daemon or not for new threads created with this ThreadFactory.
      ThreadFactoryBuilder setNameFormat​(java.lang.String nameFormat)
      Sets the naming format to use when naming threads (Thread.setName(java.lang.String)) which are created with this ThreadFactory.
      ThreadFactoryBuilder setPriority​(int priority)
      Sets the priority for new threads created with this ThreadFactory.
      ThreadFactoryBuilder setThreadFactory​(java.util.concurrent.ThreadFactory backingThreadFactory)
      Sets the backing ThreadFactory for new threads created with this ThreadFactory.
      ThreadFactoryBuilder setUncaughtExceptionHandler​(java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
      Sets the Thread.UncaughtExceptionHandler for new threads created with this ThreadFactory.
      • Methods inherited from class java.lang.Object

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

      • nameFormat

        private java.lang.String nameFormat
      • daemon

        private java.lang.Boolean daemon
      • priority

        private java.lang.Integer priority
      • uncaughtExceptionHandler

        private java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler
      • backingThreadFactory

        private java.util.concurrent.ThreadFactory backingThreadFactory
    • Constructor Detail

      • ThreadFactoryBuilder

        public ThreadFactoryBuilder()
        Creates a new ThreadFactory builder.
    • Method Detail

      • setNameFormat

        public ThreadFactoryBuilder setNameFormat​(java.lang.String nameFormat)
        Sets the naming format to use when naming threads (Thread.setName(java.lang.String)) which are created with this ThreadFactory.
        Parameters:
        nameFormat - a String.format(String, Object...)-compatible format String, to which a unique integer (0, 1, etc.) will be supplied as the single parameter. This integer will be unique to the built instance of the ThreadFactory and will be assigned sequentially. For example, "rpc-pool-%d" will generate thread names like "rpc-pool-0", "rpc-pool-1", "rpc-pool-2", etc.
        Returns:
        this for the builder pattern
      • setDaemon

        public ThreadFactoryBuilder setDaemon​(boolean daemon)
        Sets daemon or not for new threads created with this ThreadFactory.
        Parameters:
        daemon - whether or not new Threads created with this ThreadFactory will be daemon threads
        Returns:
        this for the builder pattern
      • setPriority

        public ThreadFactoryBuilder setPriority​(int priority)
        Sets the priority for new threads created with this ThreadFactory.
        Parameters:
        priority - the priority for new Threads created with this ThreadFactory
        Returns:
        this for the builder pattern
      • setUncaughtExceptionHandler

        public ThreadFactoryBuilder setUncaughtExceptionHandler​(java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler)
        Sets the Thread.UncaughtExceptionHandler for new threads created with this ThreadFactory.
        Parameters:
        uncaughtExceptionHandler - the uncaught exception handler for new Threads created with this ThreadFactory
        Returns:
        this for the builder pattern
      • setThreadFactory

        public ThreadFactoryBuilder setThreadFactory​(java.util.concurrent.ThreadFactory backingThreadFactory)
        Sets the backing ThreadFactory for new threads created with this ThreadFactory. Threads will be created by invoking #newThread(Runnable) on this backing ThreadFactory.
        Parameters:
        backingThreadFactory - the backing ThreadFactory which will be delegated to during thread creation.
        Returns:
        this for the builder pattern
        See Also:
        MoreExecutors
      • build

        public java.util.concurrent.ThreadFactory build()
        Returns a new thread factory using the options supplied during the building process. After building, it is still possible to change the options used to build the ThreadFactory and/or build again. State is not shared amongst built instances.
        Returns:
        the fully constructed ThreadFactory
      • doBuild

        private static java.util.concurrent.ThreadFactory doBuild​(ThreadFactoryBuilder builder)
      • format

        private static java.lang.String format​(java.lang.String format,
                                               java.lang.Object... args)