本文主要讲解如何通过RabbitMQ实现定时任务(延时队列) 环境准备 需要在MQ中进行安装插件 地址链接 插件介绍地址:https://www.rabbitmq.com/blog/2015/04/16/scheduling-messages-with-rabbitmq/ 使用场景 作为一个新的预支 ...
(1)同步块的设置和锁的选择,锁与同步块中处理语句直接的关系 设置Elevator(电梯对象)和Input(读入方法)两个线程,同步运行。 为了避免电梯在无需工作时轮询,将电梯的行为用synchronized封装起来,当满足“请求队列为空”、“电梯内无乘客”和“输入未停止”时,电梯用wait()停止 ...
分类:
其他好文 时间:
2021-04-26 13:59:01
阅读次数:
0
思路: 模拟。 实现: 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode() : val(0), next(nullptr) ...
分类:
其他好文 时间:
2021-04-26 13:49:52
阅读次数:
0
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wi ...
分类:
其他好文 时间:
2021-04-26 13:25:21
阅读次数:
0
以下介绍redis的几种类型:List、Pub/Sub、Stream 场景 List Pub/Sub Stream 阻塞式消费 支持 支持 支持 发布/订阅 不支持 支持 支持 重复消费 不支持 不支持 支持 持久化 支持 不支持 支持 消息堆积 内存持续增长 缓冲区溢出,消费者强制下线 可控制队列 ...
分类:
其他好文 时间:
2021-04-24 13:46:07
阅读次数:
0
剑指 Offer 24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 思路 golang 笨方法:遍历链表,新建 ...
分类:
其他好文 时间:
2021-04-24 13:41:51
阅读次数:
0
恢复内容开始 头插法:元素插在链表头部。 ① 从一个空表开始,重复读入数据; ② 生成新结点,将读入数据存放到新结点的数据域中; ③ 从最后一个结点开始,依次将各结点插入到链表的前端 例如,建立链表L,其中有五个元素 a,b,c,d,e 代码部分: //通过头指针获得链表L,n 是结点数。 void ...
分类:
其他好文 时间:
2021-04-24 13:28:10
阅读次数:
0
题目描述 给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组 示例1 输入 [4,5,1,6,2,7,3,8],4 返回值 [1,2,3,4] 解题思路:这里用优先队列来做,让其容量始 ...
分类:
其他好文 时间:
2021-04-24 13:14:06
阅读次数:
0
需要使用幂等的场景: 前端重复提交 接口超时重试 消息队列重复消费 解决方案: token机制:①客户端请求获取token,服务端生成一个唯一ID作为token存在redis中;②客户端第二次请求时携带token,服务端校验token成功则执行业务操作并删除token,服务端校验token失败则表示 ...
分类:
其他好文 时间:
2021-04-22 16:19:38
阅读次数:
0
线程和进程都是操作系统的基本概念,一个运行中的应用程序可以被看做是一个进程,而线程,是运行中的实际的任务执行者。一个进程可以包含多个同时运行的线程。 前文《Java面试必考问题:线程的生命周期 》介绍了Java线程的基本概念。Tomcat作为一个web容器,是以一个进程的形式运行的;当一个请求到达后 ...
分类:
编程语言 时间:
2021-04-22 16:09:45
阅读次数:
0