@Override
    public Thread newThread(final Runnable r) {
        Requires.requireNonNull(r, "runnable");

        final String name2 = this.name + this.id.getAndIncrement();
        final Runnable r2 = wrapRunnable(r);
        final Thread t = wrapThread(this.group, r2, name2);

        try {
            if (t.isDaemon() != this.daemon) {
                t.setDaemon(this.daemon);
            }

            if (t.getPriority() != this.priority) {
                t.setPriority(this.priority);
            }
        } catch (final Exception ignored) {
            // Doesn't matter even if failed to set.
        }

        LOG.info("Creates new {}.", t);

        return t;
    }
Named thread factory.

@author jiachun.fjc
jraft-rheakv/rheakv-core/src/main/java/com/alipay/sofa/jraft/rhea/util/concurrent/NamedThreadFactory.java