Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >定义一个接口,外部通过调用接口的方法来生产消息

定义一个接口,外部通过调用接口的方法来生产消息

原创
作者头像
用户8671053
修改于 2021-09-26 09:40:43
修改于 2021-09-26 09:40:43
49600
代码可运行
举报
文章被收录于专栏:码农的生活码农的生活
运行总次数:0
代码可运行
  • 定义一个接口,外部通过调用接口的方法来生产消息,再放几个常量在里面后面会用到:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.bolingcavalry.service;

public interface LowLevelOperateService {
    /**
     * 消费者数量
     */
    int CONSUMER_NUM = 3;

    /**
     * 环形缓冲区大小
     */
    int BUFFER_SIZE = 16;

    /**
     * 发布一个事件
     * @param value
     * @return
     */
    void publish(String value);

    /**
     * 返回已经处理的任务总数
     * @return
     */
    long eventCount();
}
  • 以上就是公共代码了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
disruptor笔记之三:环形队列的基础操作(不用Disruptor类)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《disruptor笔记》系列链接 快速入门 Disruptor类分析 环形队列的基础操作(不用Disruptor类) 事件消费知识点小结 事件消费实战 常见场景 等待策略 知识点补充(终篇) 本篇概览 本文是《disruptor笔记》系列的第三篇,主要任务是编码实现消息生产和消费,与《disruptor笔记之一:快速入门》不同的是,本次开发不使用Disrupto
程序员欣宸
2021/11/17
5630
disruptor笔记之三:环形队列的基础操作(不用Disruptor类)
传入WorkerPool的消费者需要实现WorkHandler接口
传入WorkerPool的消费者需要实现WorkHandler接口,于是新增一个实现类: package com.bolingcavalry.service; import com.lmax.disruptor.WorkHandler; import lombok.extern.slf4j.Slf4j; import java.util.function.Consumer; @Slf4j public class StringWorkHandler implements WorkHandler<Stri
用户8671053
2021/09/26
4720
disruptor笔记之五:事件消费实战
本篇是《disruptor笔记》的第五篇,前文《disruptor笔记之四:事件消费知识点小结》从理论上梳理分析了独立消费和共同消费,留下了三个任务,今天就来成这些任务,即编码实现以下三个场景:
程序员欣宸
2021/11/22
3590
disruptor笔记之五:事件消费实战
创建了多个实例,然后分别在线程池中提交
代码如下,有几处要注意的地方稍后提到: package com.bolingcavalry.service.impl; import com.bolingcavalry.service.*; import com.lmax.disruptor.BatchEventProcessor; import com.lmax.disruptor.RingBuffer; import com.lmax.disruptor.SequenceBarrier; import lombok.extern.slf4j.Slf4
用户8671053
2021/10/06
4780
实现发布消息和单个消费者消费的功能的代码
这是最简单的功能了,实现发布消息和单个消费者消费的功能,代码如下,有几处要注意的地方稍后提到: package com.bolingcavalry.service.impl; import com.bolingcavalry.service.*; import com.lmax.disruptor.BatchEventProcessor; import com.lmax.disruptor.RingBuffer; import com.lmax.disruptor.SequenceBarrier; imp
用户8671053
2021/10/06
2800
disruptor笔记之一:快速入门
disruptor是LMAX公司开发的一个高性能队列,其作用和阻塞队列(BlockingQueue)类似,都是在相同进程内、不同线程间传递数据(例如消息、事件),另外disruptor也有自己的一些特色:
程序员欣宸
2021/11/05
5990
disruptor笔记之一:快速入门
消息队列:生产者/消费者模式
生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。
全栈程序员站长
2022/07/21
3.4K0
消息队列:生产者/消费者模式
秒级达百万高并发框架-Disruptor
Disruptor是一个高性能的并发框架,主要应用于创建具有高吞吐量、低延迟、无锁(lock-free)的数据结构和事件处理系统。它最初由LMAX公司开发的,已经成为了业界广泛使用的高性能并发框架。
逍遥壮士
2023/09/01
2K0
秒级达百万高并发框架-Disruptor
两个例子带你入门 Disruptor
Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能队列。很多知名开源项目里,比如 canal 、log4j2、 storm 都是用了 Disruptor 以提升系统性能 。
勇哥java实战
2023/09/19
4700
Java 实战系列·高性能无锁队列 Disruptor
Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题,因其出色的性能表现获得 2011 Duke’s 程序框架创新奖。
数媒派
2022/12/01
1.4K0
【Linux】基于阻塞队列和循环队列的生产者消费者模型
这里的生产者就是生产者线程,消费者就是消费者线程,这里的任务队列就是内存中某段内存区域。
用户11305458
2025/03/20
1630
【Linux】基于阻塞队列和循环队列的生产者消费者模型
深入浅出生产者-消费者模式
生产者-消费者模式是一个经典的多线程设计模式,它为多线程间的协作提供了良好的解决方案。也经常有面试官会让手写一个生产者消费者,从代码细节可以看出你对多线程编程的熟练程度,今天我们来详细看一下如何写出一个生产者消费者模式,并且逐步对其优化争取做到高性能。
beifengtz
2019/06/03
3.6K0
深入浅出生产者-消费者模式
linux内核数据结构之kfifo
最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟发送。为了保证进程A减少等待时间,可以在A和B之间采用一个缓冲区,A每次将数据存放在缓冲区中,B每次冲缓冲区中取。这是典型的生产者和消费者模型,缓冲区中数据满足FIFO特性,因此可以采用队列进行实现。Linux内核的kfifo正好是一个环形队列,可以用来当作环形缓冲区。生产者与消费者使用缓冲区如下图所示:
233333
2019/05/25
3K0
disruptor笔记之八:知识点补充(终篇)
《disruptor笔记》系列链接 快速入门 Disruptor类分析 环形队列的基础操作(不用Disruptor类) 事件消费知识点小结 事件消费实战 常见场景 等待策略 知识点补充(终篇) 本篇概览 本文是《disruptor笔记》系列的终篇,前面咱们看了那么多代码,也写了那么多代码,现在咱们去看几个知识点,在轻松的阅读过程中完成disruptor之旅; 要关注的知识点有以下四处: 伪共享 Translators Lambda风格 清理数据 接下来开始逐个了解; 伪共享 下图是多核处理器的CPU缓存,可
程序员欣宸
2021/12/07
4200
disruptor笔记之八:知识点补充(终篇)
《从Java面试题看源码》-Flow、SubmissionPubliser源码分析
Flow 、SubmissionPubliser类是 java9中新增的类,都被放在JUC包中
阿提说说
2022/11/18
6620
disruptor源码分析二之RingBuffer初始化流程
MultiProducerSequencer父接口Sequencer的类及相关类与方法:
山行AI
2019/07/01
1.4K0
disruptor源码分析二之RingBuffer初始化流程
Java 阻塞队列 BlockingQueue 介绍: put,add 和 offer 三个方法
在多线程编程中,经常需要使用线程安全的数据结构,用于在不同线程之间进行数据交换和通信。Java提供了一种称为阻塞队列(BlockingQueue)的数据结构,它是线程安全的队列实现,提供了一些特殊的方法来处理多线程环境下的数据交换问题。本文将介绍阻塞队列的基本概念和在Java中使用的三种常见方法:put,add和offer。
大盘鸡拌面
2023/11/02
1.1K0
异步编程 - 13 高性能线程间消息传递库 Disruptor
Disruptor是一个高性能的线程间消息传递库,它源于LMAX对并发性、性能和非阻塞算法的研究,如今构成了其Exchange基础架构的核心部分。
小小工匠
2023/09/09
1.1K0
异步编程 - 13 高性能线程间消息传递库 Disruptor
io_uring 从原理到动手实践 part1: 使用系统调用接口实现 cat 程序
感觉目前看到介绍 io_uring 的文章还是比较少,大部分都集中在对其原理性的介绍和简单的对官方文档的翻译,真正结合实际的例子还是比较少。本文翻译整理自一篇博客:
云微
2023/02/24
1.5K0
io_uring 从原理到动手实践 part1: 使用系统调用接口实现 cat 程序
(juc系列)flow响应式流接口及submissionpublisher实现
一些接口和静态方法,为了建立流式组件, Publisher生成元素,被一个或者多个Subscriber消费,每一个Subscriber被Subscription管理.
呼延十
2021/11/10
1.5K0
推荐阅读
相关推荐
disruptor笔记之三:环形队列的基础操作(不用Disruptor类)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验