我不能在Aeron的LowLatencyMediaDriver示例中设置新的Threadfactory()。有关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...");
}
}
}发布于 2018-03-10 04:29:21
AgentRunner类自动重命名线程,并且不保留通过ThreadFactory()给出的名称。
https://stackoverflow.com/questions/49200501
复制相似问题