Not able to st ThreadFacroy() for Aeron Media Driver

时间:2018-03-09 19:04:10

标签: aeron

I cannot setup new Threadfactory() in the LowLatencyMediaDriver sample for Aeron. See below code and snapshot for thread names in VisualVM.

public class LowLatencyMediaDriver {
    public static void main(final String[] args) {
        loadPropertiesFiles(args);

        ThreadFactory conductorThreadFactory = new ThreadFactoryBuilder().setNameFormat(LowLatencyMediaDriver.class.getName()+"-Conductor-%d").setDaemon(true).build();
        ThreadFactory receiverThreadFactory = new ThreadFactoryBuilder().setNameFormat(LowLatencyMediaDriver.class.getName()+"-Receiver-%d").setDaemon(true).build();
        ThreadFactory senderThreadFactory = new ThreadFactoryBuilder().setNameFormat(LowLatencyMediaDriver.class.getName()+"-Sender-%d").setDaemon(true).build();

        final MediaDriver.Context ctx = new MediaDriver.Context()
            .termBufferSparseFile(false)
            .threadingMode(ThreadingMode.DEDICATED)
            .conductorThreadFactory(conductorThreadFactory)
            .receiverThreadFactory(receiverThreadFactory)
            .senderThreadFactory(senderThreadFactory)
            .conductorIdleStrategy(new BusySpinIdleStrategy())
            .receiverIdleStrategy(new BusySpinIdleStrategy())
            .senderIdleStrategy(new BusySpinIdleStrategy());

        try (MediaDriver ignored = MediaDriver.launch(ctx)) {
            new ShutdownSignalBarrier().await();
            System.out.println("Shutdown Driver...");
        }
    }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

AgentRunner类自动重命名线程,不保留通过ThreadFactory()给出的名称。

https://github.com/real-logic/agrona/blob/master/agrona/src/main/java/org/agrona/concurrent/AgentRunner.java#L94