微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在干扰器处理程序线程开始时运行任务

如何解决在干扰器处理程序线程开始时运行任务

我正在使用 LMAX 干扰器,效果很好。

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

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

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()方法

谢谢!!!

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。