当前位置: 首页 > news >正文

哪些是asp网站建设部网站注销一级建造师

哪些是asp网站,建设部网站注销一级建造师,网站开发 软件有哪些,wordpress iisDisruptor简介 Disruptor(中文翻译为“破坏者”或“颠覆者”)是一种高性能、低延迟的并发编程框架,最初由LMAX Exchange开发。它的主要目标是解决在金融交易系统等需要高吞吐量和低延迟的应用中的并发问题。 Disruptor特点 无锁并发&#x…

Disruptor简介

Disruptor(中文翻译为“破坏者”或“颠覆者”)是一种高性能、低延迟的并发编程框架,最初由LMAX Exchange开发。它的主要目标是解决在金融交易系统等需要高吞吐量和低延迟的应用中的并发问题。

Disruptor特点

  1. 无锁并发:Disruptor基于无锁的数据结构,它允许多个线程并发地读取和写入数据,而无需使用传统锁定机制,从而避免锁定的竞争和性能瓶颈。

  2. 环形缓冲区:Disruptor使用一个环形缓冲区,将数据项存储在其中。这个环形缓冲区可以通过预分配的方式来减少内存分配和垃圾回收的开销。

  3. 事件驱动:Disruptor的核心思想是将数据项(事件)从生产者传递到消费者,通过一种发布-订阅的模型来实现。生产者将事件写入缓冲区,而消费者从缓冲区中读取事件进行处理。

  4. 高性能:Disruptor专注于提供极高的吞吐量和低延迟,适用于需要快速处理大量数据的应用,如金融交易系统、网络数据传输等。

  5. 易于使用:尽管Disruptor的内部实现复杂,但它提供了简单而清晰的API,使开发人员能够相对容易地集成和使用它。

  6. 并发编程的辅助工具:Disruptor不仅仅是一个并发编程框架,还提供了一些辅助工具,如事件处理器、工作池等,帮助开发者更好地处理并发任务。

 Disruptor应用

Disruptor可以理解为一个可以集成在项目里的MQ,它主要也分为了生产者,消息队列和消费者这么几部分,接下来用一个例子演示

引进依赖

<dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.4.2</version>
</dependency>

定义监听实体

@Data
public class DisruptorEvent {/*** 定义加入队列的时间毫秒值*/private long creatTime;/*** 携带的其他信息*/private String data;}

定义消费者

实现EventHandler接口,重写onEvent方法

@Slf4j
public class DisruptorConsumer implements EventHandler<DisruptorEvent> {@Overridepublic void onEvent(DisruptorEvent disruptorEvent, long l, boolean b) throws Exception {log.debug("消费者开始消费数据:[{}]", disruptorEvent);//模拟复杂环境下系统延迟Thread.sleep(1100);}
}

初始化Disruptor

由于我们后续还要用到这个对象,所以要把他交给IOC容器来管理,定义bean名称,避免后续有多个Disruptor对象

@Configuration
public class DisruptorConfig {/*** 队列长度,注意必须是2的n次幂*/private static final int RING_BUFFER_SIZE = 1024;@Bean(name = "cardDisruptor")public Disruptor<DisruptorEvent> disruptorStart() {DisruptorConsumer consumer = new DisruptorConsumer();Disruptor<DisruptorEvent> disruptor = new Disruptor<>(DisruptorEvent::new,RING_BUFFER_SIZE,Executors.defaultThreadFactory(),ProducerType.MULTI,new BlockingWaitStrategy());disruptor.handleEventsWith(consumer);disruptor.start();return disruptor;}
}

定义生产者

@Slf4j
public class DisruptorProducer {private static Disruptor<DisruptorEvent> disruptor;public DisruptorProducer(Disruptor<DisruptorEvent> disruptor) {DisruptorProducer.disruptor = disruptor;}public static void push(DisruptorEvent disruptorEvent) {//获取队列RingBuffer<DisruptorEvent> ringBuffer = disruptor.getRingBuffer();boolean flag = ringBuffer.tryPublishEvent(new EventTranslator<DisruptorEvent>() {@Overridepublic void translateTo(DisruptorEvent event, long l) {//这里一定要写成这种set的形式(也就是说不要改变这个event的内存指向地址),不然消费者会拿不到值event.setData(disruptorEvent.getData());event.setCreatTime(disruptorEvent.getCreatTime());}});if (!flag) {throw new RuntimeException("发送消息失败!");}}
}

测试

使用postman模拟并发10次

public void test() {DisruptorEvent event = new DisruptorEvent();event.setData("哈哈哈");event.setCreatTime(System.currentTimeMillis());DisruptorProducer.push(event);log.info("请求成功");}

http://www.yayakq.cn/news/126305/

相关文章:

  • 现在写博客还是做网站收费企业邮箱哪家好
  • 网站建设职位域名要多少钱
  • 哈尔滨网站设计模板wordpress添加订阅会员
  • 北京规划建设 杂志 官方网站产品设计招聘网站
  • 做网站哪家专业泊头网站建设价格
  • 什么网站做ppt好做网站需要考虑哪些
  • 内蒙古住房城乡建设部网站贵阳营销型网站建设
  • 网盘资源电脑优化软件排行榜
  • 盘龙网站建设公司濮阳网站建设哪家好
  • 网站全站出售wordpress搭建是英文
  • 哪类网站流量大惠州建网站
  • 自己做的网页怎么连接到网站互联网保险的风险
  • 先做网站还是先解析企业门户源码
  • 百度代理公司珠海百度关键字优化
  • 内蒙古做网站的公司有哪些郴州网络推广教程
  • 中文网站做google广告怎么样wordpress微信分享网页带图
  • 谁做网站网页无法访问未连接上服务器
  • wap网站前台wordpress 移动端优势
  • 青岛建设局官方网站谷歌seo的推广
  • 自己做的网站能赚钱吗域名备案步骤
  • 网站建设维护的方案用wordpress上传源砖
  • 哪些网站做的好住房和城乡建设部建设司网站首页
  • 苏小小移动网站wordpress 简洁文章主题
  • 工具黄浦区seo网站建设
  • 网站后期运营方案步骤wordpress插件放到哪
  • 查网站域名备案查询系统网易企业邮箱过期了
  • 网站设计合同附件价格低的手机
  • 菏泽网站建设多少钱wordpress编辑文字内容
  • 文化企业官方网站开发方案书seo整站优化吧
  • 网站全站建设开题报告范文利用网站宣传 两学一做