【问题标题】:Run task at start of disruptor handler thread在中断处理程序线程开始时运行任务
【发布时间】:2021-03-16 14:59:54
【问题描述】:

我正在使用 LMAX 干扰器,它工作得非常好。

我想在破坏者的线程生命周期开始时执行一些核心关联代码(需要在破坏者处理程序的线程上运行)。

我尝试覆盖中断器中的启动方法,但这段代码仍然在执行线程而不是中断器线程上运行,如下所示:

ThreadFactory factory = new ThreadFactoryBuilder().setNameFormat("DisruptorThread").build();
Disruptor<OrderBasedEventHolder> disruptor = new Disruptor<>(new Disruptor<Holder> disruptor = new Disruptor<Holder>(new HolderFactory(), (int) Math.pow(2, bufferExp), factory, pType, waitStrategy) {
        @Override public RingBuffer<OrderBasedEventHolder> start() {
            // Initialization code

            return super.start();
        }
    };
disruptor.start();

如何覆盖ThreadFactory创建的线程的run()方法?

谢谢!!!

【问题讨论】:

    标签: java multithreading affinity disruptor-pattern


    【解决方案1】:

    我以前通过在任何其他条目之前加入一个初始条目(具有特殊类型)并为这个初始“开始”条目添加处理代码来解决这个问题。

    【讨论】:

      猜你喜欢
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 2011-12-25
      • 2013-09-12
      相关资源
      最近更新 更多