posted @ 2023-07-26 12:28 小飞龙(Jack) 阅读(5) 评论(0) 推荐(0) 编辑
posted @ 2023-07-26 12:25 小飞龙(Jack) 阅读(126) 评论(0) 推荐(0) 编辑
摘要:
Redis基于内存,高性能并且提供多种数据结构供使用,那么对于Redis能不能作为消息队列?以及与专业的消息队列,如RocketMQ,Kafka等差距又在哪里? Redis提供多种方式实现消息队列,基于List,基于Pub/Sub等,如今基本广泛使用的是Redis5.0之后推出的Stream流格式, 阅读全文
posted @ 2023-07-26 12:25 小飞龙(Jack) 阅读(126) 评论(0) 推荐(0) 编辑
摘要:
我们平时开发中好像很少使用到BlockingQueue(阻塞队列),比如我们想要存储一组数据的时候会使用ArrayList,想要存储键值对数据会使用HashMap,在什么场景下需要用到BlockingQueue呢? 1. BlockingQueue的应用场景 当我们处理完一批数据之后,需要把这批数据 阅读全文
posted @ 2023-07-26 12:21 小飞龙(Jack) 阅读(73) 评论(0) 推荐(0) 编辑
摘要:
BLockingQueue是一个阻塞的队列,最典型的应用场景就是生产者和消费者模式。 生产者和消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此并不直接通信,而是通过阻塞队列进行通信,所以生产者生产完数据后不用等待消费者进行处理,而是直接扔给阻塞队列,消费者不找生产者要数据 阅读全文
posted @ 2023-07-26 12:19 小飞龙(Jack) 阅读(3) 评论(0) 推荐(0) 编辑
摘要:
虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解 阅读全文
posted @ 2023-07-26 10:58 小飞龙(Jack) 阅读(21) 评论(0) 推荐(0) 编辑
摘要:
总结: 1、多线程间并行,是一个进程中的多个执行流,可理解为将一个大任务拆分出的多个子任务。 2、多线程适用场景 1)存在需要等待IO、网络或其他外部资源的任务。当前等待其他资源却依旧占用CPU的线程可让出CPU,让其他线程执行,大大提高了程序效率,充分利用了CPU资源。 2)存在长时间占用CPU的 阅读全文
posted @ 2023-07-26 10:56 小飞龙(Jack) 阅读(1654) 评论(0) 推荐(0) 编辑
摘要:
问:对多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗?回答一:最典型的如:1、用户注册完成送大礼包/积分之类,且积分等也是另一个系统并比较耗时;且这类任务即使失败也不是特别重要的。2、后台线程:比如定期执行一些特殊任务,如定期更新配置文件,任务调度(如quartz 阅读全文
posted @ 2023-07-26 10:54 小飞龙(Jack) 阅读(272) 评论(0) 推荐(0) 编辑
摘要:
在看本文章之前,需要了解Spring boot搭建和使用 ,本篇文章核心问题是如何解决高并发问题。 开发环境:redis缓存4.0.1,Rabbitmq消息队列,Erlang(这个跟MQ环境有关,先安装Erlang,再安装MQ),mysql5.7,JDK1.8(Spring boot要用1.8以上的 阅读全文
posted @ 2023-07-26 09:57 小飞龙(Jack) 阅读(212) 评论(0) 推荐(0) 编辑
摘要:
前言:秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀,那么秒杀系统的后台是如何实现的呢?我们如何设计一个秒杀系统呢?对于秒杀系统应该考虑哪些问题?如何设计出健壮的秒杀系统?本期我们就来探讨一下这个问题: 博客的目录 一:秒杀系统应该考虑的问题 二:秒杀系统的设计和技术方案 三:系统架 阅读全文
posted @ 2020-09-22 16:07 小飞龙(Jack) 阅读(73) 评论(0) 推荐(0) 编辑 |
||